docker-compose浅尝

简介

Docker ComposeDocker 官方的单机多容器管理系统,它本质是一个 Python 脚本,它通过解析用户编写的 yaml 文件,调用 Docker API 实现动态的创建和管理多个容器。

因为 目前项目上 使用的是 harbor 作为 k8s 镜像仓库,用的 docker-compose 所以了解一下.

安装

eg: 版本 1.28.6

1
2
3
4
5
6
sudo curl -L "https://github.com/docker/compose/releases/download/1.28.6/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

sudo chmod +x /usr/local/bin/docker-compose

[root@imwl-175 ~]# docker-compose --version
docker-compose version 1.28.6, build 5db8d86f

测试

步骤

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
[root@imwl-175 ~]# mkdir docker-compose-test
[root@imwl-175 ~]# cd docker-compose-test/
[root@imwl-175 docker-compose-test]# touch docker-compose.yml
[root@imwl-175 docker-compose-test]# cat docker-compose.yml
version: '3'
services:
mysql:
image: mysql:5.7
volumes:
- mysql_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: mywordpress
MYSQL_USER: mywordpress
MYSQL_PASSWORD: mywordpress
wordpress:
depends_on:
- mysql # 依赖 mysql
image: wordpress:php7.4
ports:
- "8080:80"
restart: always
environment:
WORDPRESS_DB_HOST: mysql:3306
WORDPRESS_DB_USER: mywordpress
WORDPRESS_DB_PASSWORD: mywordpress
WORDPRESS_DB_NAME: mywordpress
volumes:
mysql_data: {}

Docker Compose 首先会为我们启动一个 MySQL 数据库,按照 MySQL 服务中声明的环境变量来设置 MySQL 数据库的用户名和密码。然后等待 MySQL 数据库启动后,再启动 WordPress 服务。WordPress 服务启动后,我们就可以通过 http://localhost:8080

1
2
docker-compose up -d # 后台运行
docker-compose stop # 停止服务

查看 信息

1
2
3
4
[root@imwl-175 docker-compose-test]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
90e131ea1694 wordpress:php7.4 "docker-entrypoint.s…" 6 seconds ago Up 5 seconds 0.0.0.0:8080->80/tcp docker-compose-test_wordpress_1
ad7f19844c6f mysql:5.7 "docker-entrypoint.s…" 7 seconds ago Up 6 seconds 3306/tcp, 33060/tcp docker-compose-test_mysql_1

访问

docker-compose信息