宁泽林_NiZerin - 互联网技术博客

  • PHP
  • Go
  • Java
  • Rust
  • Python
  • 交流群
  • 关于我
  • 留言版
  1. 首页
  2. docker
  3. 正文

分享 20 个 Docker 命令的使用场景

2020年3月17日 3001点热度 0人点赞 6条评论

Docker
理解一项技术如何运行是最有效地学习和运用它的途径;当你使用 Docker 技术时,牢固地明白如下的现实。一个开发团队首次接受采纳 Docker 技术,一般都是被 Devops 推荐过来的。但是Devops 不会解释清楚一切,新使用 Docker 的开发团体如何能在现有系统中无风险地使用 Docker ,并且从中获益。
下面,你会找到开发者使用特定命令的场景、这些命令做了什么及命令演示。帮助你在建议你的公司开始实施 Docker 技术过程中,有效地打消开发团队的疑虑。

构建 docker 镜像 - -docker build

docker build --rm -t docker-examples:latest .

Docker
使用场景: 你的项目中没有 ‘docker-compose‘ 文件,仅有 ‘dockerfile‘ 文件。你想运行你的 docker 服务,首先要构建(build)它。
详情: 依 ‘dockerfile‘ 文件的配置构建 docker 映像(image)。
--rm 命令选项指定在成功构建后,删除其间产生的启动的容器。若无此命令选项,命令完成后,你将在你的容器列表中看到类似的如下图所示内容:

-t 标记你创建的 docker 映像的标签名称,不然,你在众多镜像中找出它会很困难。如下图所示:

在 VS Code 中的快捷访问

docker build --rm -t --no-cache docker-examples:latest .

使用场景: 你没有指定依赖包的版本却要更新到最新的版本,但你没在 dockerfile 文件中改变配置且 Docker 固定地使用其缓冲层。
详情: 强制 Docker 从头重建映像。

启动运行 docker 镜像 – docker run

docker run -d -p 4000:3000 docker-examples:latest


使用场景: 你已经构建了一个 Docker 镜像且想启动运行它。应用中你将容器中的 3000 端口映射到主机的 4000 端口。
详情:
-d 后台运行容器且输出启动的容器 ID 。
-p 执行容器的端口映射,命令格式:’主机端口:容器端口‘ 。本例中见命令中的 ‘4000:3000‘ 。
在 VS Code 中的快捷访问

docker run docker-examples:latest


使用场景: 在主机终端中启动运行 Docker 镜像,且观察和控制其启动运行过程。快捷键 Ctrl+C 终止并退出容器的运行。

docker run -t -i docker-examples:latest node


使用场景: 欲在容器中运行指定的命令或工具,使用本命令,将会启动运行一个新的容器实例。如图所示例子中,启动了容器中的 node.js 控制台交互程序。若想与已经启动运行的容器进行交互,参考 docker exec 命令。

停止指定容器的运行 – docker stop

docker stop container_name

使用场景: 需要停止已启动运行的容器。
详情: 可通过 docker ps -a 命令找到运行中的容器名称。
在 VS Code 中的快捷访问

docker stop $(docker ps -a -q)

举例: 停止运行所有的容器。

查看所有运行的容器 – docker ps

docker ps -a


使用场景: 查看容器列表,找到想停止的容器名称。也可查看容器运行状态及其映射的端口。
在 VS Code 中的快捷访问

输出显示容器运行日志 – docker logs

docker logs -f container_name


使用场景: 你的服务容器启动中崩溃,想知道其原因。也可通过查看服务容器的日志,对其运行有个基础的了解。
详情: 查看指定容器日志;可运用在运行或停止的容器上。-f 命令选项打开其日志持续输出。
在 VS Code 中的快捷访问

关闭容器的运行 – docker kill

docker kill $(docker ps -q)

使用场景: 对 Docker 容器运行失望且阅读了解其相关的一切。
详情: 关闭所有容器的运行。

删除停止的容器 – docker rm

docker rm $(docker ps -a -q)

使用场景: 清理混乱的容器列表。
详情: 删除所有停止运行的容器。

docker 系统管理 – docker system

docker system prune

Docker
使用场景 你想清理不再使用的 docker 材料。
详情: 删除所有不再使用的容器、网络、映像(所有挂起和未引用的),以及目录卷(可选)。
在 VS Code 中的快捷访问

删除 docker 映像 – docker rmi

docker rmi $(docker images -q)

使用场景: 需要释放更多的主机存储空间。
详情: 删除所有 docker 映像。

在容器中执行命令 – docker exec

docker exec -it container_name /bin/sh


使用场景: 当一个容器抛出 ‘get‘ 请求到 example.com 连接超时错误时。你可连接到它并在容器中运行诸如: curl 或 ping 命令。
详情: 在容器中运行指定命令或工具,且在容器环境中进行处理。非常有用的命令,用于在容器中排除故障及理解容器中发生的问题。

启动 docker-compose – docker-compose up

docker-compose up


使用场景: 有一个配置了多个服务的 ‘docker-compose‘ 文件,你想构建和运行这些服务容器并观察其输出。

docker-compose up -d


使用场景: 后台构建和运行所有由 docker-compose 配置的服务容器且在之后观察它们的运行状态。
在 VS Code 中的快捷访问

docker-compose up -d example-service-1

使用场景: 后台启动在 docker-compose 文件中配置的某个指定的服务容器,这样会使启动的服务容器按照 docker-compose 文件中配置的映射端口、挂载卷等动作启动。

停止 docker-compose 服务族的运行 – docker-compose down

docker-compose down

使用场景: 需要停止所有在 docker-compose 文件中配置的服务容器。这将停止docker-compose 中配置的每个服务容器,及其相关的网络、目录卷、及通过 ip 构建的映像。 这有助于想在干净的状态下开始运行项目。

执行 docker-compose 服务任务 – docker-compose run

docker-compose run example_app rails db:migrate

使用场景: 需要 docker-compose 服务群执行特定的任务,诸如,迁移或测试任务。可以使用与 docker run 类似的命令方法,除了执行任务的服务来自 docker-compose 配置中的服务容器。注意的是,这里使用的 run 接口,将使在 docker-compose 文件中配置的那些在执行任务中使用不到的端口映射不进行映射。

在 docker-compose 配置的容器中执行命令 – docker-compose exec

docker-compose exec example_app node


使用场景: 欲访问到服务容器内部且执行类似 docker exec 的命令。不同的是通过 docker-compose 中配置的服务容器名进行访问。对于排除故障、测试网络、检查现存容器中的所有数据等任务十分有用。

docker-compose 日志 – docker-compose logs

docker-compose logs -f container_name

使用场景: 你的服务在启动时崩溃,你想知道原因。
详情: 查看指定的服务容器日志,对于运行中和停止的服务容器都有效。与 docker logs 命令不同的是,这里使用 ‘docker-compose‘ 中配置的服务名称替换具体容器名称。
-f 命令选项保持日志的持续输出。

停止 docker-compose 服务的运行 – docker-compose stop

docker-compose stop example_app

使用场景: 欲停止 docker-compose 配置的服务或其服务容器。

重启 docker-compose 配置的服务 – docker-compose restart

docker-compose restart example_app

使用场景:欲重启 docker-compose 配置的服务或其服务容器。

本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: docker
最后更新:2020年3月17日

NiZerin

博主已经躺平了,后面很少会更新博客。

打赏 点赞

文章评论

  • 违章代办

    来学习的

    2020年3月20日
    回复
  • 哄哄

    http://www.iacblog.com

    2020年3月24日
    回复
  • 找果树

    谢谢分享

    2020年3月25日
    回复
  • Jimmy

    。

    2020年3月30日
    回复
    • Jimmy

      @Jimmy https://www.iacblog.com/2019/05/820.html

      2020年3月30日
      回复
  • 注意

    Good

    2020年6月26日
    回复
  • razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
    取消回复

    分类
    • Angular
    • CSS3
    • docker
    • Flutter
    • git
    • Go
    • H5
    • Java
    • JavaScript
    • Laravel
    • linux
    • Node.js
    • PHP
    • Python
    • React
    • redis
    • Vue.js
    • windows
    • WordPress
    • 交流
    • 小程序
    • 工具
    • 网站公告
    标签聚合
    php translations vue flutter laravel go javascript wordpress
    友情链接
    • PHP函数字典
    • 宝塔运维特惠
    • 科学上网
    • 阿里云特惠

    COPYRIGHT © 2021 nizer.in. ALL RIGHTS RESERVED.

    Theme Kratos Made By Seaton Jiang