购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.3 Docker基本命令

本节介绍Docker的一些常用命令,有助于读者更好地排查问题及学习和管理Docker。

查看Docker版本,包括Docker版本号、API版本号、对应的Git Commit、Containerd和runC的版本信息等。

通过Docker Version命令打印出来的信息,我们需要了解几个关键名词:

查看Docker详细信息:

镜像搜索,可以使用docker search查询自己想要的镜像。OFFICIAL为OK的是官方镜像,默认搜索的是hub.docker.com。

拉取/下载镜像,默认是hub.docker.com(docker.io)上面的镜像,如果拉取公司内部的镜像或者其他仓库上的镜像,需要在镜像前面加上仓库的URL,例如:

     docker pull harbor.xxx.net/frontend:v1

拉取公网上的Nginx镜像:

     # 把公网上的镜像拉取到本地服务器,不指定版本号为latest
     # docker pull nginx
     Using default tag: latest
     latest: Pulling from library/nginx
     Digest: sha256:b543f6d0983fbc25b9874e22f4fe257a567111da96fd1d8f1b44315f1236398c
     Status: Image is up to date for nginx:latest
     
     #拉取指定版本
     # docker pull nginx:1.15
     1.15: Pulling from library/nginx
     Digest: sha256:b543f6d0983fbc25b9874e22f4fe257a567111da96fd1d8f1b44315f1236398c
     Status: Downloaded newer image for nginx:1.15

把本地的镜像推送到公网仓库中,或者公司内部的仓库中。

默认登录和推送的是公网的镜像,如果需要推送到公司仓库或者其他仓库,只需要在镜像前面使用tag并加上URL即可:

有时候我们需要给一个业务容器进行测试或者进行某个调试,可以使用run -ti在前台启动一个容器:

     # docker run -ti nginx bash
     root@23bc7ccabb09:/#
     # 也可以使用-ti --rm参数,表示前台启动的容器退出后即删除

如果一个镜像需要一直运行,可以使用-d进行后台启动:

     # docker run -tid nginx bash
     1bcf5154d5c3a57d92a6796f526eac2cefd962aaca9cf4098689bfe830bb9e5e
     # 也可以使用--restart=always,如果容器异常自动重启

如果需要通过服务器的IP+端口访问容器的内部应用,可以使用-p进行端口映射,将本机的端口映射到容器的端口,比如将本机的1111端口映射到容器的80端口:

     # docker run -ti -p 1111:80 nginx bash
     root@cd676d572188:/#

如果需要挂载一个本地的目录到容器,可以使用-v参数进行挂载,比如将hosts文件挂载到容器的hosts:

     # docker run -ti -p 1111:80 -v /etc/hosts:/etc/hosts  nginx bash
     root@cd676d572188:/#

查看当前正在运行的容器:

查看所有容器,包括已经退出的:

     # docker ps -a

查看正在运行的容器(即显示出容器的ID):

     # docker ps -q
     ...
     0d1a98b3c402
     c1fd8ff1f7f2
     86b1c069024b
     ...

查看所有容器的ID,包括已经退出的:

     # docker ps -aq
     ...
     17019738d93d
     b3bb2a592dfb
     e0637b76afe3
     0b74e028d0ae
     65a1b5e1e501
     ...

进入一个后台运行的容器(即之前用-d命令参数指定后台运行方式的容器):

将本机的文件复制到容器,复制支持双向复制,也支持将容器的内部文件复制到宿主机:

     # docker cp README.md 92aceec0dcdd327a709bf0ec83:/tmp
     #exec也可直接执行容器命令
     # docker exec 92aceec0dcdd327a709bf0ec83 ls /tmp/
     README.md

删除已经退出的容器:

删除本机镜像,比如删除REPOSITORY或TAG为none的镜像:

区分镜像的版本可以使用tag命令给镜像打标签:

使用docker build通过Dockerfile制作镜像。注意最后的一个点(.),表示使用当前目录构建镜像:

     # docker  build  -t image_name:image_tag .

有时候容器运行异常或者没有达到自己的效果,可以使用docker logs查看容器输出到控制台的日志(程序日志输出到控制台是容器化的最佳实践):

--tail 1从最后一行看,-f是查看实时日志,更多使用方法可以参考docker logs –h。

有时候可能需要查看镜像的层信息或者一个正在运行的容器的信息,可以使用docker inspect,比如查看一个正在运行的容器的端口信息:

当然,也可以使用docker history查看一个镜像的构建信息:

上述演示的都是Docker常用的基本命令,已可以满足日常工作需求,如果读者想要深入了解,可以参考Docker的相关资料或书籍。 cDbpV5SESgkltHKvoVbhdDfxsyF4yVUS56GukSl6Qx7ErstfR8iggKq0XRiZaDEB

点击中间区域
呼出菜单
上一章
目录
下一章
×

打开