简介
Docker是一个开源的应用容器引擎,它让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。现记录docker的常用命令,以备查询自用。持续更新中……
Docker安装命令
一键安装命令(低版本)
安装最新版本命令
1 2 3 4 5
| yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine yum install -y yum-utils yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo yum install -y docker-ce docker-ce-cli containerd.io systemctl start docker
|
Docker生命周期命令
1 2 3 4 5 6 7 8 9
| yum install -y docker #安装docker systemctl start docker #启动docker systemctl status docker #查看docker状态 systemctl stop docker #停止docker systemctl restart docker #重启docker systemctl daemon-reload #重载docker配置 docker version #docker版本 docker info #docker系统级信息 yum remove docker
|
-y
参数:出现是否继续安装的选项时默认允许安装
Docler镜像命令
1 2 3 4 5 6 7 8 9
| docker images docker search tomcat docker pull tomcat[:version] docker tag flow2000/news:latest flow2000/news:1.0.0 docker rmi tomcat[:version] docker rmi -f 镜像ID docker rmi -f 镜像名1:TAG 镜像名2:TAG docker images -qa docker rmi -f $(docker images -qa)
|
Docler容器命令
1 2 3 4 5 6 7 8 9
| docker run [options] image [command] [arg...] docker ps docker start 容器ID或容器name docker restart 容器ID或容器name docker stop 容器ID或容器name docker kill 容器ID或容器name docker rm 容器ID或容器name docker rm -f 容器ID或容器name docker rm -f $(docker ps -qa)
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| -d: 后台运行容器,并返回容器ID
-i: 以交互式运行容器,通常与-t同时使用
-p: 端口映射,格式为 主机(宿主)端口:容器端口
-t: 为容器重新分配一个伪输入终端,通常与-i同时使用
-v: 目录挂载,格式为 主机(宿主)目录/文件:容器目录/文件
--name="name": 为容器指定一个名称
--dns 8.8.8.8: 为容器指定一个dns服务器,默认与宿主一致
--dns-search domain:为容器指定一个DNS域名,默认与宿主一致
-h "hostname": 指定容器的hostname
-e arg="value": 设置环境变量
-env-file=[]:从指定文件读入环境变量
--cpuset="0-2" or --cpuset="0,1,2": 绑定容器到指定的cpu运行
-m: 设置容器使用内存最大值
--net="bridge": 指定容器的网络连接类型,支持bridge/host/none/container四种类型
--link=[]:添加链接到另外一个容器
--expose=[]:开放一个端口或一组端口,宿主机使用随机端口映射到开放的端口
|
Docker网络命令
1 2 3 4 5 6 7 8 9
| docker network COMMAND
docker network connect 网络ID或网络name 容器ID或容器name docker network create 容器ID或容器name docker network disconnect 容器ID或容器name docker network inspect 容器ID或容器name docker network ls docker network prune 容器ID或容器name docker network rm 容器ID或容器name
|
Docker日志命令
1
| docker logs -f -t --tail 10 容器ID或容器名称
|
1 2 3 4 5 6
| # 加入时间戳 -t # 跟随最新的日志打印 -f # 输出最后几行的日志 --tail 行数
|
小技巧
更新容器
针对yum install dokcer -y
的用户
1
| docker run --rm -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower -c -R 容器名
|
Docker常见问题
1、[Linux]File “/bin/yum-config-manager“, line 135 except yum.Errors.RepoError, e:
解决:
yum采用Python作为命令解释器,而我们将Python升级为Python3之后,由于python版本之间兼容性不太好,使得2.X版本与3.0版本之间存在语法不一致问题,CentOS 7自带的yum采用的是python2.7,当系统将python升级到3.7后,出现语法解释错误
需要到指定文件添加2.7版本的注明:
1
| vi /usr/bin/yum-config-manager
|

2、docker镜像无法删除 Error:No such image:xxxxxx
解决:
1
| cd /var/lib/docker/image/overlay2/imagedb/content/sha256
|

找到对应镜像删除即可
3、Error response from daemon: Unknown runtime specified docker-runc Error: failed to start containers: xxxx
原因:当不兼容的版本升级docker并且升级后无法启动docker容器时会出现这种情况
解决:
1 2
| grep -rl 'docker-runc' /var/lib/docker/containers/ | xargs sed -i 's/docker-runc/runc/g systemctl restart docker
|
官方文档
docker run | Docker Documentation