docker-compose安装和使用

下载docker-compose:

下载指定版本compose
查看compose发布版本

sudo curl -L "https://github.com/docker/compose/releases/download/v2.4.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

赋予用户可执行权限

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

查看版本号验证是否安装成功

docker-compose --version

创建项目目录

mkdir test && cd test

创建并编辑docker-compose.yml文件(下面有示例)

vim docker-compose.yml

在后台启动所有服务(默认指定./docker-compose.yml)

docker-compose up -d

显示所有运行的服务

docker-compose ps

停止所有运行的服务

docker-compose stop

卸载docker-compose:

sudo rm /usr/local/bin/docker-compose

docker-compose常用命令:

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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58

#在后台所有启动服务(默认指定./docker-compose.yml)
docker-compose up -d

#显示所有容器
docker-compose ps

#停止和删除容器、网络、卷、镜像
docker-compose down

#停止正在运行的容器
docker-compose stop

#构建建启动nignx容器
docker-compose up -d nginx

#登录到nginx容器中
docker-compose exec nginx bash

#重新启动nginx容器
docker-compose restart nginx

#在php-fpm中不启动关联容器,并容器执行php -v 执行完成后删除容器
docker-compose run --no-deps --rm php-fpm php -v

#构建镜像
docker-compose build nginx

#不带缓存的构建
docker-compose build --no-cache nginx

#查看nginx的日志
docker-compose logs nginx

#查看nginx的实时日志
docker-compose logs -f nginx

#验证(docker-compose.yml)文件配置,当配置正确时,不输出任何内容,当文件配置错误,输出错误信息。
docker-compose config -q

#以json的形式输出nginx的docker日志
docker-compose events --json nginx

#暂停nignx容器
docker-compose pause nginx

#恢复ningx容器
docker-compose unpause nginx

#删除容器(删除前必须关闭容器)
docker-compose rm nginx

#停止nignx容器
docker-compose stop nginx

#启动nignx容器
docker-compose start nginx

docker-compose.ymal示例:

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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
version: '3.1'
services:
doh_mysql:
# 使用mysql 5.7.20的镜像
image: mysql:5.7.20
# 启动容器名称mysql
container_name: doh_mysql
# 自启动
#restart: always
command: --server_id=100
ports:
# 容器3306端口映射到宿主机3306端口
- "3306:3306"
environment:
# 服务器时区使用上海
TZ: Asis/Shanghai
MYSQL_ROOT_PASSWORD: "123456"
MYSQL_USER: 'root'
MYSQL_PASS: '123456'
MYSQL_DATABASE: database
volumes:
# mysql相关数据存储在宿主机 */*/文件夹
# 本地需要创建data目录和配置my.cnf
- ./doh_mysql/data:/var/lib/mysql
- ./doh_mysql/conf/my.cnf:/etc/mysql/my.cnf
#加入指定网络
networks:
- net_db
cok_mysql:
image: mysql:5.7.20
container_name: cok_mysql
command: --server_id=200
ports:
- "3316:3306"
environment:
TZ: Asis/Shanghai
MYSQL_ROOT_PASSWORD: "123456"
MYSQL_USER: 'root'
MYSQL_PASS: '123456'
MYSQL_DATABASE: database
volumes:
- ./cok_mysql/data:/var/lib/mysql
- ./cok_mysql/conf/my.cnf:/etc/mysql/my.cnf
networks:
- net_db
redis:
image: redis:5.0.0
container_name: redis
#restart: always
command: redis-server /etc/redis/redis.conf --requirepass 123456
networks:
- net_db
ports:
- "6379:6379"
volumes:
- ./redis/data:/var/lib/redis
- ./redis/conf/redis.conf:/etc/redis/redis.conf
- ./redis/logs:/logs/redis
networks:
net_db:
driver: bridge

注意:

需要安装Docker