docker-compose安装及使用
官网仓库地址:
https://github.com/docker/compose
1. 安装
如果按照之前文档中安装了docker,会默认安装docker-compose,将如下文件拷贝到系统path路径中:
$ sudo cp /usr/libexec/docker/cli-plugins/docker-compose /usr/local/bin/
# 配置环境变量
$ echo "export PATH=/usr/local/bin/:\$PATH" | sudo tee -a /etc/profile
$ source /etc/profile
$ docker-compose -v
Docker Compose version v2.26.1
也可以从官方仓库中下载二进制文件拷贝到/usr/local/bin路径,并添加可执行权限:
https://github.com/docker/compose/releases
2. 使用示例
使用 docker-compose
启动一个 Nginx 应用程序,你需要创建一个 docker-compose.yml
文件来定义 Nginx 服务,并为其配置端口映射和其他必要的设置。
以下是一个示例,展示了如何使用 docker-compose
启动一个简单的 Nginx 应用程序,并在主机上暴露端口:
1. 创建 docker-compose.yml
文件
首先,创建一个 docker-compose.yml
文件。在这个文件中,你可以定义 Nginx 服务以及如何启动它。以下是一个简单的配置示例:
version: '3.8'
services:
nginx:
image: nginx:latest
ports:
- "80:80"
解释 docker-compose.yml
:
version
: 这是 Docker Compose 文件的版本。在这个示例中,使用了3.8
。services
: 这里定义了所有服务。我们创建了一个名为nginx
的服务。image
: 使用nginx:latest
Docker 镜像。这将拉取最新的 Nginx 镜像。ports
: 定义端口映射。在这里,我们将主机的 80 端口映射到容器内的 80 端口,这样主机上的流量可以转发到容器。
2. 使用 docker-compose
启动 Nginx
在包含 docker-compose.yml
的目录中,运行以下命令以启动 Nginx:
# docker-compose up
WARN[0000] /root/nginx-demo/docker-compose.yml: `version` is obsolete
[+] Running 8/8
✔ nginx Pulled
✔ b0a0cf830b12 Pull complete
✔ 8ddb1e6cdf34 Pull complete
✔ 5252b206aac2 Pull complete
✔ 988b92d96970 Pull complete
✔ 7102627a7a6e Pull complete
✔ 93295add984d Pull complete
✔ ebde0aa1d1aa Pull complete
[+] Running 1/2
✔ Network nginx-demo_default Created
⠴ Container nginx-demo-nginx-1 Created
Attaching to nginx-1
nginx-1 | /docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
nginx-1 | /docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
nginx-1 | /docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
nginx-1 | 10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf
nginx-1 | 10-listen-on-ipv6-by-default.sh: info: Enabled listen on IPv6 in /etc/nginx/conf.d/