Docker常用命令
Docker常用命令
- 搜索及拉取docker镜像
$ docker search [NAME] # 搜索docker镜像(搜索结果里OFFICIAL为OK的是官方镜像)
$ docker pull [NAME] # 拉取指定docker镜像(NAME是搜索出来的指定镜像名)
- 查看docker容器实例和镜像
$ docker ps -a # 查看所有docker容器实例 $ docker ps # 查看所有正在运行的docker容器实例 $ docker images # 查看所有docker镜像 $ docker images [REPOSITORY] # 查看指定docker镜像(REPOSITORY为镜像名)
- 开启停止docker容器实例和镜像
$ docker start [ID/NAMES] # 开启指定docker容器实例 $ docker stop [ID/NAMES] # 停止指定docker容器实例 $ docker restart [ID/NAMES] # 重启指定docker容器实例 $ docker start `docker ps -a -q` # 批量启动所有的docker容器实例 $ docker stop `docker ps -a -q` # 批量停止所有的docker容器实例 $ docker restart `docker ps -a -q` # 批量重启所有的docker容器实例
- 强制删除docker容器实例和镜像
$ docker rm -f [ID/NAMES] # 强制删除指定docker容器实例(删除前需先停止实例) $ docker rmi -f [ID/NAMES] # 强制删除指定docker镜像(删除前需先停止实例) $ docker rm -f `docker ps -a -q` # 批量强制删除所有的docker容器实例(删除前需先停止实例) $ docker rmi -f `docker images -q` # 批量强制删除所有的docker镜像(删除前需先停止实例)
- 进入/退出docker容器内部
注:如果遇到OCI runtime exec failed: exec failed问题,则使用如下命令进入$ docker exec -it [CONTAINER ID/NAMES] /bin/bash # 进入指定docker容器内部 $ ps -ef # 查看容器内进程 $ exit # 从docker容器内部退出
$ docker exec -it [CONTAINER ID/NAMES] /bin/sh
- 查看docker运行日志
$ docker logs -f [CONTAINER ID/NAMES] --tail 100 # 查看指定条数的docker运行日志 $ docker logs --since 30m [CONTAINER ID/NAMES] # 查看指定分钟内的docker运行日志
- docker容器内部的文件上传和下载
$ docker cp /root/test.txt [CONTAINER ID/NAMES]:/root # 上传文件 $ docker cp [CONTAINER ID/NAMES]:/root/test.txt /root # 下载文件
- docker空间清理
$ docker system df # 类似于Linux上的df命令,用于查看Docker的磁盘使用情况 $ docker system prune # 可用于清理磁盘,删除关闭的容器、无用的数据卷和网络,以及无tag的镜像)
- 在docker容器外执行容器内的命令
有时候我们想执行某个容器的某条命令,但又不想进入容器内,可通过如下命令示例实现:
$ docker exec -it [CONTAINER ID/NAMES] /bin/bash -c 'cd /code && python test.py'
注:如果遇到the input device is not a TTY问题,去掉t即可,即:
$ docker exec -i [CONTAINER ID/NAMES] /bin/bash -c 'cd /code && python test.py'
- docker的跨容器调用
需求情景:爬虫项目和定时任务项目分别在两个容器中部署的,想要在定时任务项目里编写脚本调用爬虫项目中的具体执行文件。
我们可以通过挂载docker.sock和docker命令行客户端实现用docker exec来间接调用。只需要在docker run的时候挂载如下路径即可:
-v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Faith!
评论