前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Docker命令详解

Docker命令详解

作者头像
LuckySec
发布2022-11-02 13:27:57
3020
发布2022-11-02 13:27:57
举报
文章被收录于专栏:LuckySec网络安全

Docker 命令类别划分

  • Docker环境信息 — docker [info|version]
  • 容器生命周期管理 — docker [create|exec|run|start|stop|restart|kill|rm|pause|unpause]
  • 容器操作运维 — docker [ps|inspect|top|attach|wait|export|port|rename|stat]
  • 容器rootfs命令 — docker [commit|cp|diff]
  • 镜像仓库 — docker [login|pull|push|search]
  • 本地镜像管理 — docker [build|images|rmi|tag|save|import|load]
  • 容器资源管理 — docker [volume|network]
  • 系统日志信息 — docker [events|history|logs]

Docker 命令图解

Docker 命令图解
Docker 命令图解

0x001 Docker 服务的启动与关闭命令

1.1 启动
代码语言:javascript
复制
systemctl enable docker  # 开机自启
systemctl start docker   # 启动
1.2 重启
代码语言:javascript
复制
sudo systemctl daemon-reload  # 守护进程重启
systemctl restart  docker  # 重启
sudo service docker restart  # 重启
1.3 关闭
代码语言:javascript
复制
service docker stop  # 关闭
systemctl stop docker  # 关闭

0x002 Docker 查看信息命令

代码语言:javascript
复制
docker version  # Docker 版本信息
docker info  # Docker 系统信息,包括镜像和容器数。

0x003 Docker 本地镜像管理命令

3.1 列出本地镜像
代码语言:javascript
复制
docker images  # 列出本地镜像
docker images ubuntu  # 列出本地镜像中REPOSITORY为ubuntu的镜像
3.2 删除本地镜像
代码语言:javascript
复制
docker rmi -f 镜像名1 镜像名2 ... # 删除本地一个或多个镜像
3.3 标记本地镜像
代码语言:javascript
复制
docker tag # 标记本地镜像,将其归入某一仓库。
例:docker tag ubuntu:15.10 runoob/ubuntu:v3  # 将镜像ubuntu:15.10标记为 runoob/ubuntu:v3 镜像
3.4 使用 Dockerfile 创建镜像
代码语言:javascript
复制
docker build  # 命令用于使用 Dockerfile 创建镜像
例1: docker build -t runoob/ubuntu:v1 .   # 使用当前目录的 Dockerfile 创建镜像,标签为 runoob/ubuntu:v1
例2: docker build github.com/creack/docker-firefox  # 使用URL github.com/creack/docker-firefox 的 Dockerfile 创建镜像
例3: docker build -f /path/to/a/Dockerfile .  # 通过 -f Dockerfile 文件的位置
例4: docker build -t test/myapp .  # 在 Docker 守护进程执行 Dockerfile 中的指令前,首先会对 Dockerfile 进行语法检查,有语法错误时会返回
3.5 查看指定镜像的创建历史
代码语言:javascript
复制
docker history  # 查看指定镜像的创建历史
例: docker history runoob/ubuntu:v3  # 查看本地镜像runoob/ubuntu:v3的创建历史
3.6 导入指定镜像保存到 tar 归档文件中
代码语言:javascript
复制
docker save  # 将指定镜像保存成 tar 归档文件
例: docker save -o my_ubuntu_v3.tar runoob/ubuntu:v3  # 将镜像 runoob/ubuntu:v3 生成 my_ubuntu_v3.tar 文档
3.7 导出使用 docker save 命令保存的 tar 归档文件中的镜像
代码语言:javascript
复制
例1: docker load < busybox.tar.gz  # 导出保存在 busybox..tar.gz 中的镜像
例2: docker load --i fedora.tar  # 导出 fedora.tar 中的文件镜像
3.8 从归档文件中创建镜像
代码语言:javascript
复制
docker import  my_ubuntu_v3.tar runoob/ubuntu:v4 # 从镜像归档文件my_ubuntu_v3.tar创建镜像,命名为runoob/ubuntu:v4

0x004 Docker 镜像仓库命令

4.1 登陆/登出到一个Docker镜像仓库
代码语言:javascript
复制
docker login -u 用户名 -p 密码 # 登陆
docker logout   # 登出
4.2 从镜像仓库中下载或者更新指定镜像
代码语言:javascript
复制
docker pull java  # 从Docker Hub下载java最新版镜像
docker pull -a java  # 从Docker Hub下载REPOSITORY为java的所有镜像
4.3 将本地的镜像上传到镜像仓库,要先登陆到镜像仓库
代码语言:javascript
复制
docker push myapache:v1  # 上传本地镜像myapache:v1到镜像仓库中
4.4 从Docker Hub查找镜像
代码语言:javascript
复制
docker search -s 10 java  # 从Docker Hub查找所有镜像名包含java,并且收藏数大于10的镜像

0x005 Docker 容器管理操作命令

5.1 创建一个新的容器并运行
代码语言:javascript
复制
例1: docker run --name mynginx -d nginx:latest  # 使用docker镜像nginx:latest以后台模式启动一个容器,并将容器命名为mynginx
例2: docker run -P -d nginx:latest  # 使用镜像nginx:latest以后台模式启动一个容器,并将容器的80端口映射到主机随机端口
例3: docker run -p 8080:80 -v /data:/data -d nginx:latest  # 使用镜像 nginx:latest,以后台模式启动一个容器,将容器的 80 端口映射到主机的 8080 端口,主机的目录 /data 映射到容器的 /data
例4: docker run -p 127.0.0.1:80:8080/tcp ubuntu bash # 绑定容器的 8080 端口,并将其映射到本地主机 127.0.0.1 的 80 端口上
例5: docker run -it nginx:latest /bin/bash  # 使用镜像nginx:latest以交互模式启动一个容器,在容器内执行/bin/bash命令
5.2 杀掉一个运行中的容器
代码语言:javascript
复制
docker kill -s KILL mynginx  # 杀掉运行中的容器mynginx
5.3 删除一个或多个容器
代码语言:javascript
复制
例1: docker rm -f db01 db02  # 强制删除容器 db01、db02
例2: docker rm -l db   # 移除容器 nginx01 对容器 db01 的连接,连接名 db
例3: docker rm -v nginx01  # 删除容器 nginx01, 并删除容器挂载的数据卷
例4: docker rm $(docker ps -a -q)  # 删除所有已经停止的容器
5.4 暂停/恢复 容器中所有的进程
代码语言:javascript
复制
docker pause db01  # 暂停数据库容器db01提供服务
docker unpause db01  # 恢复数据库容器db01提供服务
5.5 创建一个新的容器但不启动它
代码语言:javascript
复制
docker create  --name myrunoob  nginx:latest  # 使用docker镜像nginx:latest创建一个容器,并将容器命名为myrunoob,不启动
5.6 在运行的容器中执行命令
代码语言:javascript
复制
例1: docker exec -it mynginx /bin/sh /root/runoob.sh  # 在容器 mynginx 中以交互模式执行容器内 /root/runoob.sh 脚本
例2: docker exec -i -t  mynginx /bin/bash  # 在容器 mynginx 中开启一个交互模式的终端
例3: docker exec -it 9df70f9a0714 /bin/bash  # 通过 exec 命令对指定ID为9df70f9a0714的容器执行 bash
5.7 获取容器/镜像的元数据
代码语言:javascript
复制
docker inspect mysql:5.6 # 获取镜像mysql:5.6的元信息
docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' mymysql  # 获取正在运行的容器mymysql的 IP
5.8 查看容器中运行的进程信息
代码语言:javascript
复制
docker top mymysql # 查看容器mymysql的进程信息
for i in  `docker ps |grep Up|awk '{print $1}'`;do echo \ &&docker top $i; done  # 查看所有运行容器的进程信息
5.9 连接到正在运行中的容器
代码语言:javascript
复制
docker attach --sig-proxy=false mynginx  # 容器mynginx将访问日志指到标准输出,连接到容器查看访问信息
5.10 从服务器获取实时事件
代码语言:javascript
复制
docker events  --since="1467302400"  # 显示docker 2016年7月1日后的所有事件
docker events -f "image"="mysql:5.6" --since="1467302400"  # 显示docker 镜像为mysql:5.6 2016年7月1日后的相关事件
5.11 获取容器的日志
代码语言:javascript
复制
docker logs -f mynginx  # 跟踪查看容器mynginx的日志输出
docker logs --since="2016-07-01" --tail=10 mynginx  # 查看容器mynginx从2016年7月1日后的最新10条日志
5.12 阻塞运行直到容器停止,然后打印出它的退出代码
代码语言:javascript
复制
docker wait CONTAINER
5.13 将文件系统作为一个tar归档文件导出到STDOUT
代码语言:javascript
复制
docker export -o mysql-`date +%Y%m%d`.tar a404c6c174a2  # 将id为a404c6c174a2的容器按日期保存为tar文件
5.14 列出指定的容器的端口映射
代码语言:javascript
复制
docker port mymysql  # 查看容器mynginx的端口映射情况
5.15 从容器创建一个新的镜像
代码语言:javascript
复制
docker commit -a "提交人信息" -m 说明信息" a404c6c174a2  mymysql:v1  # 将容器a404c6c174a2 保存为mymysql:v1镜像,并添加提交人信息和说明信息
5.16 容器与主机之间的数据拷贝
代码语言:javascript
复制
实例1: docker cp /www/runoob 96f7f14e99ab:/www/  # 将主机/www/runoob目录拷贝到容器96f7f14e99ab的/www目录下
实例2: docker cp /www/runoob 96f7f14e99ab:/www  # 将主机/www/runoob目录拷贝到容器96f7f14e99ab中,目录重命名为www
实例3: docker cp  96f7f14e99ab:/www /tmp/  # 将容器96f7f14e99ab的/www目录拷贝到主机的/tmp目录中
5.17 检查容器里文件结构的更改
代码语言:javascript
复制
docker diff mymysql  # 查看容器mymysql的文件结构更改
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-10-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Docker 命令类别划分
  • Docker 命令图解
  • 0x001 Docker 服务的启动与关闭命令
    • 1.1 启动
      • 1.2 重启
        • 1.3 关闭
        • 0x002 Docker 查看信息命令
        • 0x003 Docker 本地镜像管理命令
          • 3.1 列出本地镜像
            • 3.2 删除本地镜像
              • 3.3 标记本地镜像
                • 3.4 使用 Dockerfile 创建镜像
                  • 3.5 查看指定镜像的创建历史
                    • 3.6 导入指定镜像保存到 tar 归档文件中
                      • 3.7 导出使用 docker save 命令保存的 tar 归档文件中的镜像
                        • 3.8 从归档文件中创建镜像
                        • 0x004 Docker 镜像仓库命令
                          • 4.1 登陆/登出到一个Docker镜像仓库
                            • 4.2 从镜像仓库中下载或者更新指定镜像
                              • 4.3 将本地的镜像上传到镜像仓库,要先登陆到镜像仓库
                                • 4.4 从Docker Hub查找镜像
                                • 0x005 Docker 容器管理操作命令
                                  • 5.1 创建一个新的容器并运行
                                    • 5.2 杀掉一个运行中的容器
                                      • 5.3 删除一个或多个容器
                                        • 5.4 暂停/恢复 容器中所有的进程
                                          • 5.5 创建一个新的容器但不启动它
                                            • 5.6 在运行的容器中执行命令
                                              • 5.7 获取容器/镜像的元数据
                                                • 5.8 查看容器中运行的进程信息
                                                  • 5.9 连接到正在运行中的容器
                                                    • 5.10 从服务器获取实时事件
                                                      • 5.11 获取容器的日志
                                                        • 5.12 阻塞运行直到容器停止,然后打印出它的退出代码
                                                          • 5.13 将文件系统作为一个tar归档文件导出到STDOUT
                                                            • 5.14 列出指定的容器的端口映射
                                                              • 5.15 从容器创建一个新的镜像
                                                                • 5.16 容器与主机之间的数据拷贝
                                                                  • 5.17 检查容器里文件结构的更改
                                                                  相关产品与服务
                                                                  容器服务
                                                                  腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
                                                                  领券
                                                                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档