docker的常规使用总结
不安装docker下载镜像,或者下载异构镜像,模拟docker客户端
https://pull.7ii.win/
1、启动docker服务
systemctl? start docker
2、查看镜像
docker images
查看镜像centos-vim
docker images | grep ubuntu-vim
#强制删除全部镜像文件
docker rmi -f $(docker images -aq) ?
?
3、查看启动的镜像
docker ps
4、查看全部docker容器
docker ps -a
5、停止docker
docker stop? pid
停止所有docker
docker stop $(docker ps -a -q)
强制删除容器(有启动的服务也可以删除)
docker? rm -f pid
6、启动docker容器
docker? start pid
7、搜索镜像
docker? search? mysql:latest
搜索不小于3星,描述不截断,镜像名中包含mysql的镜像
docker search --filter=stars=3 --no-trunc mysql
8、启动容器并自己编写一段shell脚本
[root@localhost ~]# docker run -d centos /bin/sh -c "while true;do echo cpf; sleep 1;done"
9、启动服务详解
Usage: docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
? -a, --attach=[] ? ? ? ? ? ?登录容器(以docker run -d启动的容器)
? -c, --cpu-shares=0 ? ? ? ? 设置容器CPU权重,在CPU共享场景使用
? --cap-add=[] ? ? ? ? ? ? ? 添加权限,权限清单详见:http://linux.die.net/man/7/capabilities
? --cap-drop=[] ? ? ? ? ? ? ?删除权限,权限清单详见:http://linux.die.net/man/7/capabilities
? --cidfile="" ? ? ? ? ? ? ? 运行容器后,在指定文件中写入容器PID值,一种典型的监控系统用法
? --cpuset="" ? ? ? ? ? ? ? ?设置容器可以使用哪些CPU,此参数可以用来容器独占CPU
? -d, --detach=false ? ? ? ? 指定容器运行于前台还是后台?
? --device=[] ? ? ? ? ? ? ? ?添加主机设备给容器,相当于设备直通
? --dns=[] ? ? ? ? ? ? ? ? ? 指定容器的dns服务器
? --dns-search=[] ? ? ? ? ? ?指定容器的dns搜索域名,写入到容器的/etc/resolv.conf文件
? -e, --env=[] ? ? ? ? ? ? ? 指定环境变量,容器中可以使用该环境变量
? --entrypoint="" ? ? ? ? ? ?覆盖image的入口点
? --env-file=[] ? ? ? ? ? ? ?指定环境变量文件,文件格式为每行一个环境变量
? --expose=[] ? ? ? ? ? ? ? ?指定容器暴露的端口,即修改镜像的暴露端口
? -h, --hostname="" ? ? ? ? ?指定容器的主机名
? -i, --interactive=false ? ?打开STDIN,用于控制台交互
? --link=[]? ? ? ? ? ? ? ? ? ? 指定容器间的关联,使用其他容器的IP、env等信息
? --lxc-conf=[] ? ? ? ? ? ? ?指定容器的配置文件,只有在指定--exec-driver=lxc时使用
? -m, --memory="" ? ? ? ? ? ?指定容器的内存上限
? --name="" ? ? ? ? ? ? ? ? ?指定容器名字,后续可以通过名字进行容器管理,links特性需要使用名字
? --net="bridge" ? ? ? ? ? ? 容器网络设置,待详述
? -P, --publish-all=false ? 指定容器暴露的端口,待详述
? -p, --publish=[]? ? ? ? ? ? 指定容器暴露的端口,待详述
? --privileged=false ? ? ? ?指定容器是否为特权容器,特权容器拥有所有的capabilities
? --restart=always? ? ? ? ?指定容器停止后的重启策略,待详述
? --rm=false? ? ? ? ? ? ? ? ? ?指定容器停止后自动删除容器(不支持以docker run -d启动的容器)
? --sig-proxy=true ? ? ? ? ? 设置由代理接受并处理信号,但是SIGCHLD、SIGSTOP和SIGKILL不能被代理
? -t, --tty=false ? ? ? ? ? ?分配tty设备,该可以支持终端登录
? -u, --user="" ? ? ? ? ? ? ?指定容器的用户
? -v, --volume=[] ? ? ? ? ? ?给容器挂载存储卷,挂载到容器的某个目录 例如: -v 宿主机目录:容器目录
? --volumes-from=[] ? ? ? ? ?给容器挂载其他容器上的卷,挂载到容器的某个目录
? -w, --workdir="" ? ? ? ? ? 指定容器的工作目录
??
--restart参数=
?? ?no
?? ??? ?默认策略,在容器退出时不重启容器
?? ?on-failure
?? ??? ?在容器非正常退出时(退出状态非0),才会重启容器
?? ?on-failure:3
?? ??? ?在容器非正常退出时重启容器,最多重启3次
?? ?always
?? ??? ?在容器退出时总是重启容器
#开机自启
?? ?unless-stopped
?? ??? ?在容器退出时总是重启容器,但是不考虑在Docker守护进程启动时就已经停止了的容器
# 一般推荐使用always参数
?? ?--restart=always
示例: 启动一个容器,容器端口80映射到宿主机8787端口,停止后自动删除容器,把宿主当前执行命令pwd的目录挂载到容器/home/paddle
docker run -p 8787:80 ?--rm --env USER_PASSWD="123456" -v $PWD:/home/paddle registry.baidubce.com/paddlepaddle/paddle:2.5.2
10、更新容器
将正在运行的容器设为自启动?? ?
# docker update --restart=always 容器名或容器ID
docker update --restart=always <CONTAINER ID>
# 例如将tomcat设为自启动
docker update --restart=always tomcat
将自启动的容器取消自启动
# docker update --restart=no 容器名或容器ID
docker update --restart=no <CONTAINER ID>
# 例如取消tomcat的自启动
docker update --restart=no tomcat
11、提交镜像
docker commit 0bd244689ed2 ubuntu-vim
OPTIONS说明
-a :提交的镜像作者;
-c :使用Dockerfile指令来创建镜像;
-m :提交时的说明文字;
-p :在commit时,将容器暂停。
将容器0bd244689ed2保存为新的镜像,并添加提交人信息和说明信息。
docker commit -a "runoob.com" -m "my apache" 0bd244689ed2 mymysql:v1
12、查看本地镜像的详细信息
docker inspect ubuntu-vim:afcaf46e8305
13、拉取镜像指定架构(amd、arm、arm64、x86、x64)
docker pull --platform=arm paddlepaddle/paddle
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!