本文参考自官方文档:https://docs.docker.com/
一.Docker Compose介绍
Docker Compose是一种工具,旨在帮助定义和共享多容器应用程序.使用 Compose,我们可以创建一个 YAML 文件来定义服务,并且可以使用单个命令来启动或拆除所有内容.(参考文档)
使用 Compose的一大优势是您可以在文件中定义应用程序堆栈,将其保存在项目存储库的根目录下(现在受版本控制),并且可以轻松地让其他人为您的项目做出贡献.有人只需要克隆您的存储库并启动撰写应用程序.事实上,你现在可能会在 GitHub/GitLab 上看到很多项目就是这样做的.
二.安装 Docker Compose
1.Windows 或 Mac 默认安装了Docker Compose,如果使用的是 Linux 机器,则需要安装 Docker Compose,安装后运行以下命令并查看版本信息
docker-compose version
如果是Linux机器,则继续后面的操作,否则可以跳过.
2.Linux上运行此命令以下载 Docker Compose 的当前稳定版本(速度可能有点慢,要耐心等待)
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
要安装不同版本的 Compose,请替换1.29.2
为您要使用的 Compose 版本.
3.对二进制文件应用可执行权限
sudo chmod +x /usr/local/bin/docker-compose
4.安装完成测试
[root@xxx ~]# sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 633 100 633 0 0 182 0 0:00:03 0:00:03 --:--:-- 182
100 12.1M 100 12.1M 0 0 23663 0 0:08:58 0:08:58 --:--:-- 24027
[root@xxx~]# docker-compose version
-bash: /usr/local/bin/docker-compose: Permission denied
[root@xxx ~]# sudo chmod +x /usr/local/bin/docker-compose
[root@xxx ~]# docker-compose version
docker-compose version 1.29.2, build 5becea4c
docker-py version: 5.0.0
CPython version: 3.7.10
OpenSSL version: OpenSSL 1.1.0l 10 Sep 2019
[root@xxx ~]#
三.创建 Compose 文件
1.在应用项目的根目录下,创建一个名为docker-compose.yml
.
2.在撰写文件中,我们将首先定义yml版本.在大多数情况下,最好使用最新的受支持版本.您可以查看Compose 文件参考 以了解当前yml版本和兼容性.
3.接下来,我们将定义要作为应用程序的一部分运行的服务(或容器)列表.
4.下面是一个创建mysql服务例子,docker-compose.yml如下
# Use root/example as user/password credentials
version: '3.7'
services:
db:
image: mysql
command: --default-authentication-plugin=mysql_native_password
restart: always
environment:
MYSQL_ROOT_PASSWORD: example
adminer:
image: adminer
restart: always
ports:
- 8080:8080
运行docker-compose up -d,
等待它完全初始化,然后访问http://localhost:8080
或http://host-ip:8080
运行docker-compose down 可以停止所有容器,你也可以使用docker命令操作.