1、环境
- 操作系统:Centos 7
- docker版本:19.03.7
- docker-compose版本:1.24.0
2、docker-compose.yml 配置文件
version: '3'
services:
mysql:
image: mysql:5.7
env_file:
- .env
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
container_name: mysql
labels:
- db.type=mysql
- version=5.7
restart: always
ports:
- 3306:3306
# privileged=true: 容器内的root拥有真正root权限,否则容器内root只是外部普通用户权限
privileged: true
networks:
- backend
volumes:
- /var/lib/mysql:/var/lib/mysql
networks:
backend:
driver: bridge
ipam:
driver: default
config:
- subnet: 192.168.10.0/24
3、docker-compose.yml 中用到的环境变量可以在 .env 文件中配置
docker-compose.yml 文件会读取系统以及本目录下的.env文件中定义的环境变量。
MYSQL_ROOT_PASSWORD=123456
4、后台运行mysql服务
$ docker-compose up -d
5、查看容器启动状态
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
edd20b834409 mysql:5.7 "docker-entrypoint.s…" 27 minutes ago Up 27 minutes 0.0.0.0:3306->3306/tcp, 33060/tcp mysql
6、进入容器查看mysql版本并登录
$ docker exec -it mysql bash
root@edd20b834409:/# mysql -V
mysql Ver 14.14 Distrib 5.7.29, for Linux (x86_64) using EditLine wrapper
root@edd20b834409:/# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.7.29 MySQL Community Server (GPL)
Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
mysql>
至此,使用docker-compose部署mysql服务完成,docker-compose.yml 文件语法请参考官网