写点什么

全面图解 Docker 架构设计:掌握 Docker 全链路思维与优化 (命令篇)

作者:肖哥弹架构
  • 2024-10-06
    河北
  • 本文字数:4682 字

    阅读完需:约 15 分钟

全面图解Docker架构设计:掌握Docker全链路思维与优化(命令篇)


Docker 是一个革命性的开放平台,用于开发、交付和运行应用程序。通过使用 Docker,开发者可以打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何支持 Docker 的环境中,在不同环境中实现一致的运行。无论是在虚拟机、物理服务器、数据中心还是云平台,Docker 都能确保应用的快速、可靠地部署和运行。


Docker 提供的不仅仅是容器,它还构建了一个庞大的生态系统,包括 Docker Hub、Docker Compose、Docker Swarm 等工具,这些工具涵盖了从开发到生产、从单一容器到容器编排的全方位需求。Docker 还支持多种编程语言、框架和中间件,使其成为现代应用开发和部署的首选工具。


肖哥弹架构 跟大家“弹弹” 高并发锁, 关注公号回复 'mvcc' 获得手写数据库事务代码

欢迎 点赞,关注,评论。

关注公号 Solomon 肖哥弹架构获取更多精彩内容 SS

历史热点文章

本节内容

11、DockerFile 管理命令表

12、DockerFile 管理命令案例

12.1 镜像

创建与构建

docker build


# 使用当前目录下的Dockerfile构建一个新的镜像,并命名为"my-image"docker build -t my-image .
复制代码


说明


  • -t my-image: 指定镜像的名称和标签。

  • .: 表示使用当前目录下的 Dockerfile。docker buildx


# 使用BuildKit构建一个新的镜像,并命名为"my-image"docker buildx build -t my-image --platform linux/amd64,linux/arm64 .
复制代码


说明


  • --platform linux/amd64,linux/arm64: 指定构建的镜像平台。

  • .: 表示使用当前目录下的 Dockerfile。

保存与加载

docker commit


# 从名为"my-container"的容器创建一个新的镜像,并命名为"my-new-image"docker commit my-container my-new-image
复制代码


说明


  • my-container: 指定容器名称。

  • my-new-image: 指定新镜像名称。docker save


# 将名为"my-image"的镜像保存为tar文件docker save -o my-image.tar my-image
复制代码


说明


  • -o my-image.tar: 指定输出文件的名称。docker load


# 从tar文件加载镜像docker load -i my-image.tar
复制代码


说明


  • -i my-image.tar: 指定输入文件的名称。

12.2 容器

操作与管理

docker container


# 列出当前的所有容器docker container ls
复制代码


说明


  • docker container: 管理容器的命令。docker container commit


# 从名为"my-container"的容器创建一个新的镜像,并命名为"my-new-image"docker container commit my-container my-new-image
复制代码


说明


  • my-container: 指定容器名称。

  • my-new-image: 指定新镜像名称。docker container cp


# 从名为"my-container"的容器复制文件到当前目录docker container cp my-container:/path/to/file ./
复制代码


说明


  • my-container: 容器名称。

  • /path/to/file: 容器内部文件的路径。

  • ./: 目标路径,这里表示当前目录。docker container create


# 创建一个新的容器,但不启动它docker container create --name my-container my-image
复制代码


说明


  • --name my-container: 指定容器名称。

  • my-image: 指定基础镜像。docker container diff


# 查看名为"my-container"的容器的文件系统变化docker container diff my-container
复制代码


说明


  • my-container: 指定容器名称。docker container exec


# 在名为"my-container"的容器中执行命令docker container exec my-container ls
复制代码


说明


  • my-container: 指定容器名称。

  • ls: 要执行的命令。docker container export


# 导出名为"my-container"的容器的文件系统docker container export my-container > my-container.tar
复制代码


说明


  • my-container: 指定容器名称。

  • >: 将导出的数据流重定向到文件。docker container inspect


# 获取名为"my-container"的容器的详细信息docker container inspect my-container
复制代码


说明


  • my-container: 指定容器名称。docker container kill


# 杀死名为"my-container"的容器docker container kill my-container
复制代码


说明


  • my-container: 指定容器名称。docker container logs


# 获取名为"my-container"的容器的日志docker container logs my-container
复制代码


说明


  • my-container: 指定容器名称。

列出与搜索

docker container ls


# 列出当前的所有容器docker container ls
复制代码


说明


  • docker container ls: 列出当前运行的容器。docker container prune


# 删除所有未使用的容器docker container prune
复制代码


说明


  • docker container prune: 删除未使用的容器。

12.3 网络

操作与管理

docker network


# 列出当前的所有网络docker network ls
复制代码


说明


  • docker network: 管理 Docker 网络的命令。docker network connect


# 将名为"my-container"的容器连接到"my-network"网络docker network connect my-network my-container
复制代码


说明


  • my-network: 指定网络名称。

  • my-container: 指定容器名称。docker network create


# 创建一个新的网络,并命名为"my-network"docker network create my-network
复制代码


说明


  • my-network: 指定网络名称。docker network disconnect


# 从"my-network"网络断开名为"my-container"的容器docker network disconnect my-network my-container
复制代码


说明


  • my-network: 指定网络名称。

  • my-container: 指定容器名称。docker network inspect


# 获取"my-network"网络的详细信息docker network inspect my-network
复制代码


说明


  • my-network: 指定网络名称。

列出与搜索

docker network ls


# 列出当前的所有网络docker network ls
复制代码


说明


  • docker network ls: 列出所有网络。docker network prune


# 删除所有未使用的网络docker network prune
复制代码


说明


  • docker network prune: 删除未使用的网络。docker network rm


# 删除名为"my-network"的网络docker network rm my-network
复制代码


说明


  • my-network: 指定网络名称。docker network update


# 更新"my-network"网络的配置docker network update my-network
复制代码


说明


  • my-network: 指定网络名称。

12.4 卷

操作与管理

docker volume


# 列出当前的所有卷docker volume ls
复制代码


说明


  • docker volume: 管理 Docker 卷的命令。docker volume create


# 创建一个新的卷,并命名为"my-volume"docker volume create my-volume
复制代码


说明


  • my-volume: 指定卷名称。docker volume inspect


# 获取"my-volume"卷的详细信息docker volume inspect my-volume
复制代码


说明


  • my-volume: 指定卷名称。

列出与搜索

docker volume ls


# 列出当前的所有卷docker volume ls
复制代码


说明


  • docker volume ls: 列出所有卷。docker volume prune


# 删除所有未使用的卷docker volume prune
复制代码


说明


  • docker volume prune: 删除未使用的卷。docker volume rm


# 删除名为"my-volume"的卷docker volume rm my-volume
复制代码


说明


  • my-volume: 指定卷名称。

守护进程

docker daemon


# 启动Docker守护进程dockerd
复制代码


说明


  • dockerd: 启动 Docker 守护进程。

12.5 集群管理

操作与管理

docker swarm


# 列出当前Swarm模式的状态docker swarm ls
复制代码


说明


  • docker swarm: 管理 Docker Swarm 的命令。docker swarm ca


# 获取或轮询根CAdocker swarm ca --cert-rotate
复制代码


说明


  • --cert-rotate: 轮询并更新证书。docker swarm init


# 初始化Swarm模式docker swarm init --advertise-addr 192.168.1.1
复制代码


说明


  • --advertise-addr 192.168.1.1: 指定 Swarm 管理节点的 IP 地址。docker swarm join


# 将节点加入到Swarm模式docker swarm join --token <SWARM_JOIN_TOKEN> 192.168.1.1:2377
复制代码


说明


  • <SWARM_JOIN_TOKEN>: 加入令牌,由docker swarm init命令生成。

  • 192.168.1.1:2377: Swarm 管理节点的地址和端口。docker swarm leave


# 使节点离开Swarm模式docker swarm leave --force
复制代码


说明


  • --force: 强制离开 Swarm 模式。docker swarm update


# 更新Swarm模式的配置docker swarm update --autolock=true
复制代码


说明


  • --autolock=true: 启用自动锁定。docker swarm unlock


# 解锁Swarm模式docker swarm unlock
复制代码


说明


  • 输入解锁密钥以解锁 Swarm 模式。docker swarm unlock-key


# 获取Swarm解锁密钥docker swarm unlock-key
复制代码


说明


  • 获取 Swarm 解锁密钥。

12.6 配置

操作与管理

docker config


# 列出当前的所有配置docker config ls
复制代码


说明


  • docker config: 管理 Docker 配置的命令。docker config create


# 创建一个新的配置,并命名为"my-config"echo "hello world" | docker config create my-config -
复制代码


说明


  • echo "hello world": 输出文本内容。

  • my-config: 指定新配置名称。docker config inspect


# 获取"my-config"配置的详细信息docker config inspect my-config
复制代码


说明


  • my-config: 指定配置名称。

列出与搜索

docker config ls


# 列出当前的所有配置docker config ls
复制代码


说明


  • docker config ls: 列出所有配置。docker config rm


# 删除名为"my-config"的配置docker config rm my-config
复制代码


说明


  • my-config: 指定配置名称。

12.7 插件

操作与管理

docker plugin


# 列出当前的所有插件docker plugin ls
复制代码


说明


  • docker plugin: 管理 Docker 插件的命令。docker plugin create


# 创建一个新的插件docker plugin create my-plugin /path/to/plugin:version
复制代码


说明


  • my-plugin: 指定插件名称。

  • /path/to/plugin:version: 指定插件的路径和版本。docker plugin disable


# 禁用名为"my-plugin"的插件docker plugin disable my-plugin
复制代码


说明


  • my-plugin: 指定插件名称。docker plugin enable


# 启用名为"my-plugin"的插件docker plugin enable my-plugin
复制代码


说明


  • my-plugin: 指定插件名称。docker plugin inspect


# 获取"my-plugin"插件的详细信息docker plugin inspect my-plugin
复制代码


说明


  • my-plugin: 指定插件名称。

列出与搜索

docker plugin ls


# 列出当前的所有插件docker plugin ls
复制代码


说明


  • docker plugin ls: 列出所有插件。docker plugin push


# 推送名为"my-plugin"的插件到镜像仓库docker plugin push my-plugin
复制代码


说明


  • my-plugin: 指定插件名称。docker plugin rm


# 删除名为"my-plugin"的插件docker plugin rm my-plugin
复制代码


说明


  • my-plugin: 指定插件名称。docker plugin set


# 更新"my-plugin"插件的配置docker plugin set my-plugin ENV my-key=my-value
复制代码


说明


  • my-plugin: 指定插件名称。

  • ENV my-key=my-value: 设置环境变量。docker plugin upgrade


# 升级名为"my-plugin"的插件docker plugin upgrade my-plugin my-plugin:new-version
复制代码


说明


  • my-plugin: 指定插件名称。

  • my-plugin:new-version: 指定新版本。

12.8 系统

信息与状态

docker system


# 显示Docker系统的状态docker system df
复制代码


说明


  • docker system: 管理 Docker 系统命令。docker system df


# 显示Docker数据的使用情况docker system df
复制代码


说明


  • docker system df: 显示 Docker 数据使用情况。docker system events


# 获取Docker事件docker system events
复制代码


说明


  • docker system events: 获取 Docker 事件。docker system info


# 显示Docker系统信息docker system info
复制代码


说明


  • docker system info: 显示 Docker 系统信息。

清理

docker system prune


# 清理未使用的Docker对象docker system prune
复制代码


说明


  • docker system prune: 清理未使用的对象。docker system update


# 更新Dockerdocker system update
复制代码


说明


  • docker system update: 更新 Docker。

12.9 帮助

docker --help


# 获取Docker命令的帮助信息docker --help
复制代码


说明


  • docker --help: 获取 Docker 命令的帮助信息。docker version


# 显示Docker的版本信息docker version
复制代码


说明


  • docker version: 显示 Docker 的版本信息。

发布于: 刚刚阅读数: 5
用户头像

智慧属心窍之锁 2019-05-27 加入

擅长于通信协议、微服务架构、框架设计、消息队列、服务治理、PAAS、SAAS、ACE\ACP、大模型

评论

发布
暂无评论
全面图解Docker架构设计:掌握Docker全链路思维与优化(命令篇)_Docker_肖哥弹架构_InfoQ写作社区