docker-compose
# 准备知识
YAML 的配置文件后缀为 .yml,如:runoob.yml 。 基本语法
- 大小写敏感
- 使用缩进表示层级关系
- 缩进不允许使用tab,只允许空格
- 缩进的空格数不重要,只要相同层级的元素左对齐即可
- '#'表示注释
- YAML 数组,以 - 开头的行表示构成一个数组
# 在线安装DockerCompose(推荐)
curl -L https://get.daocloud.io/docker/compose/releases/download/1.27.4/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose -v
# 或者采用下面的方式
curl -L https://raw.githubusercontent.com/docker/compose/1.24.1/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose
# 离线安装DockerCompose
下载地址:https://github.com/docker/compose/releases(opens new window)
mv docker-compose-Linux-x86_64 /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose -v
docker-compose.yml示例:
####################################
## 修改配置文件后,重启容器 docker-compose up -d --force-recreate
## 项目依赖启动 docker-compose up mariadb redis
## 列出所有容器 docker-compose ps
## 删除Tag为空的镜像 docker images|grep none|awk '{print $3}'|xargs docker rmi -f
## 关闭所有容器 docker-compose down
## 启动单个容器(处于同一网络中) docker run -it --name=resolve --net=tslc-mysql tslc-resolve:latest bash
####################################
version: '3'
services:
tslc-resolve:
image: tslc-resolve:latest
container_name: tslc-resolve
build:
context: .
dockerfile: Dockerfile
restart: always
privileged: true
environment:
TZ: "Asia/Shanghai"
ports:
- '8082:8082'
volumes:
- /etc/localtime:/etc/localtime
- ./conf/resolve/:/data/drogon/TSLC_BACKEND_RESOLVE/conf
- ./data/resolve/logs:/data/drogon/TSLC_BACKEND_RESOLVE/logs
- ./data/resolve/static:/data/drogon/TSLC_BACKEND_RESOLVE/static
depends_on:
- tslc-mysql
networks:
- net-tslc
tslc-mysql:
image: mysql:8.0
container_name: tslc-mysql
restart: always
privileged: true
environment:
MYSQL_ROOT_HOST: "%"
MYSQL_ROOT_PASSWORD: ITrain-BJ6
TZ: "Asia/Shanghai"
command:
- --innodb_buffer_pool_size=256M
- --max_connections=81
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_general_ci
- --default-authentication-plugin=mysql_native_password
- --explicit_defaults_for_timestamp=true
- --lower_case_table_names=1
ports:
- '3306:3306'
volumes:
- /etc/localtime:/etc/localtime
- ./conf/initdb/:/docker-entrypoint-initdb.d/
- ./data/mysql/:/var/lib/mysql/
networks:
- net-tslc
networks:
net-tslc:
← Dockerfile 常用命令 →