【笔记】DockerCompose集群部署

前言

DockerCompose集群部署学习笔记
Compose是一个文本文件,用于存放自动化部署集群镜像的脚本代码

安装DockerCompose

MacOS

1
brew install docker-compose

Linux

  • 从Github下载DockerCompose
1
2
3
4
5
# 下载DockerCompose
curl -L https://github.io/docker/compose/release/download/1.29.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
# 配置自动补全
curl -L https://raw/githubsercontent.com/docker/compose/1.29.1/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose

Ubuntu

1
apt install docker-compose

定义docker-compose.yml配置文件

部署Mysql+Java项目案例

version: "":制定DockerCompose的版本,不同版本语法不同
services.mysql.volumes

/root/mysql/data:指定宿主机映射的Mysql数据目录
/root/mysql/conf/hmy.cnf:指定宿主机映射的Mysql配置文件

services.web.build:指定Dockerfile所在目录

docker-compose.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
version: "3.2"

services:
mysql:
image: mysql:5.7.25
environment:
MYSQL_ROOT_PASSWORD: 123456
volumes:
- /root/mysql/data:/var/lib/mysql
- /root/mysql/conf/hmy.cnf:/etc/mysql/conf.d/hmy.cnf
web:
build: .
ports:
- 8080:8080

部署Mysql+Java项目集群案例

  • DockerCompose内部得服务互相访问可以把服务名当作域名直接访问,而不需要ip地址
docker-compose.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
version: "3.2"

services:
nacos:
image: nacos/nacos-server
environment:
MODE: standalone
port:
- "8848:8848"
mysql:
image: mysql:5.7.25
environment:
MYSQL_ROOT_PASSWORD: 123456
volumes:
- /root/mysql/data:/var/lib/mysql
- /root/mysql/conf/hmy.cnf:/etc/mysql/conf.d/hmy.cnf
user-service:
build: ./user-service
order-service:
build: ./order-service
gateway:
build: ./gateway
posts:
- "8100"

通过docker-compose与Dockerfile的案例

Dockerfile
1
2
3
4
5
6
7
FROM golang:1.20-alpine as builder
RUN apk --no-cache add git
WORKDIR /app
COPY . .
ENV GO111MODULE=on
ENV GOPROXY="https://mirrors.aliyun.com/groxy,direct"
CMD go run main.go
docker-compose.yml
1
2
3
4
5
6
7
8
9
10
version: "3.1"
services:
demo:
build:
context: ./
dockerfile: Dockerfile
image: go-product:v1.0
container_name: go-product
ports:
- 8080:8080

查看帮助

1
docker-compose --help

运行容器

-d:后台运行
-f docker-compose.yml手动指定docker-compose.yml配置文件的位置

1
docker-compose up

停止容器

1
docker-compose stop

停止并删除容器

1
docker-compose down

重启容器

重启配置文件中的所有服务

1
docker-compose restart

重启配置文件中的指定服务

<service_name>:服务名

1
2
3
docker-compose restart <service_name>

docker-compose restart <service_name> <service_name>

查看容器日志

-f:持续输出日志

查看配置文件中的所有服务的日志

1
docker-compose logs

查看配置文件中的指定服务的日志

1
2
3
docker-compose logs <service_name>

docker-compose logs <service_name> <service_name>

完成

参考文献

哔哩哔哩——黑马程序员
CSDN——随猿Fa