[51CTO.com 快译] 你可以通过多种方式来管理和部署 Docker 容器. 你可以直接使用 Docker 命令, 借助众多 GUI 工具中的一款(基于 web 的工具和面向桌面客户端的工具), 也可以选择走 docker-compose 这条路.
Docker Compose 是什么东东? Docker Compose 用于创建容器及容器之间的连接. 然而, docker-compose 命令的用途实际上广泛得多. 使用此命令可以: 构建映像, 扩展容器, 修复容器, 查看容器的输出, 列出容器的公共端口等等.
那么如何使用 docker-compose 呢? 不妨一探究竟.
如何安装 Docker Compose?
即使你已经在服务器上安装了 Docker, 也很可能没有安装 Docker Compose. 要安装 Docker Compose, 执行以下命令:
- sudo curl -L "https://github.com/docker/compose/releases/download/1.23.1/docker-compose-$(uname
- -s)-$(uname -m)" -o /usr/local/bin/docker-compose
- sudo chmod +x /usr/local/bin/docker-compose
使用以下命令验证安装:
docker-compose version
你应该会看到几个应用程序的版本号(图 A).
图 A. Docker Compose 已安装并准备就绪
Docker 文件
为了部署容器, Docker Compose 依赖 docker-compose.YAML 文件, 该文件用于将 Docker 容器部署到你的特定环境. 假设你想部署 WordPress 容器. 先使用以下命令创建一个新目录:
mkdir ~/wordpressbuild
使用以下命令切换到该新目录:
cd ~/wordpressbuild
使用以下命令创建新的 Docker Compose 文件:
nano docker-compose.YAML
将以下内容 (取自官方 Docker Compose 文档) 粘贴到文件中:
- version: '3.3'
- services:
- db:
- image: MySQL:5.7
- volumes:
- - db_data:/var/lib/MySQL
- restart: always
- environment:
- MYSQL_ROOT_PASSWORD: somewordpress
- MYSQL_DATABASE: WordPress
- MYSQL_USER: WordPress
- MYSQL_PASSWORD: WordPress
- WordPress:
- depends_on:
- - db
- image: WordPress:latest
- ports:
- - "8000:80"
- restart: always
- environment:
- WORDPRESS_DB_HOST: db:3306
- WORDPRESS_DB_USER: WordPress
- WORDPRESS_DB_PASSWORD: WordPress
- WORDPRESS_DB_NAME: WordPress
- volumes:
- db_data: {}
保存并关闭该文件.
现在我们使用以下命令构建项目并在分离模式下部署容器:
docker-compose up -d
该命令将下载所有必需的映像(本例中是 MySQL 和 WordPress), 然后在端口 8000 上部署该服务. 可以将 Web 浏览器指向 http://SERVER_IP:8000(其中 SERVER_IP 是托管服务器的 IP 地址), 查看 WordPress 安装页面(图 B).
图 B. WordPress 安装程序
如何检查你的部署?
假设你想检查来自部署的日志. 为此, 执行以下命令:
docker-compose logs
你应该会看到来自上一次部署的大量信息(图 C).
图 C. 查看来自 WordPress 的 docker-compose 部署的日志
该命令将输出大量信息(如果你部署了众多容器更是如此). 相反, 你可以指定要查看日志文件的服务. 如何知道使用哪个服务名称? 检查 docker-compose.YAML 文件. 在本文示例中, 我们有两个服务:
db: 数据库
WordPress:WordPress 容器
因此, 如果你只想查看 WordPress 服务的日志, 那么该命令将是:
docker-compose logs WordPress
你也可以查看日志的输出(就像使用 tail 命令那样), 如下所示:
docker-compose logs -f WordPress
只要 WordPress 服务的新信息记入日志, 就会出现在终端窗口中(图 D).
图 D. 查看 WordPress 服务日志
如果你忘了部署中使用哪些端口, 该怎么办? 可以查看 docker-compose.YAML 文件, 也可以将 port 选项与 docker-compose 命令一起使用. 你要知道服务的内部命令. 比如说, WordPress 默认使用端口 80, 因此我们知道这是内部端口. 但我们将什么分配为面向网络的端口? 用以下命令查清楚:
docker-compose port WordPress 80
该命令的输出将显示我们将内部端口 80 映射到外部端口 8000(图 E).
图 E. WordPress 的端口映射
如果你记不得已部署的容器, 可以执行命令:
docker-compose ps
输出会列出已部署的每个容器(图 F).
图 F. 容器列表
刚刚开始
这应该让你可以开始领略 Docker Compose 的强大功能. 我们会在下一篇文章中细述 docker-compose.YAML 文件, 弄清楚如何构建自己的容器.
原文标题: How to use the docker-compose command, 作者: Jack Wallen
来源: http://www.tuicool.com/articles/Y3E32er