Docker中部署MySQL数据库
- 1.为MySQL Docker容器创建Docker Compose YAML文件
[root@zzsu docker]# mkdir db-docker
[root@zzsu docker]# cd db-docker
[root@zzsu db-docker]# touch docker-compose.yml
- 2.在docker-compose.yml文件中添加以下内容:
[root@zzsu db-docker]# cat docker-compose.yml
version: '3.1'
services:
mysql-development:
image: mysql:8.0.17 //要使用的Docker镜像是mysql:8.0.17。 如果不将tag指定为8.0.17,则将采用最新的tag。
environment: //指定的是环境变量,即用户,密码和数据库。 如果您未指定用户,则默认情况下它将为root。
MYSQL_ROOT_PASSWORD: 123.com
MYSQL_DATABASE: testapp
ports: //端口映射
- "3336:3306"
- 3.创建.yml文件之后,我们需要在.yml文件所在的同一目录中运行以下命令:
[root@zzsu db-docker]# docker-compose up //拉取Docker镜像(如果镜像在本地不存在,它将从Docker Hub拉出)然后运行容器
# 查看状态:
root@zzsu db-docker]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
02f1e29b8ddc mysql:8.0.17 "docker-entrypoint..." About a minute ago Up 9 seconds 33060/tcp, 0.0.0.0:3336->3306/tcp dbdocker_mysql-development_1
- 4.连接到Container中运行的MySQL数据库
连接到容器化的MySQL,不通过映射端口,来自在同一个Docker网络上运行的另一个应用程序,我们必须使用像Adminer这样的工具;
在docker-compose.yml文件中添加另一项服务——Adminer.
# 停止运行容器
[root@zzsu db-docker]# docker-compose down
# 在docker-compose.yml文件中添加以下内容:
[root@zzsu db-docker]# cat docker-compose.yml
version: '3.1'
services:
mysql-development:
image: mysql:8.0.17
environment:
MYSQL_ROOT_PASSWORD: 123.com
MYSQL_DATABASE: testapp
ports:
- "3336:3306"
admin:
image: adminer
ports:
- "8080:8080"
# 再次启动Docker 容器:
[root@zzsu db-docker]# docker-compose up -d
* 可以使用docker-compose ps检查状态。
- 5.可以访问我们的浏览器并转到localhost:8080 来访问Adminer,可以通过端口3306访问MySQL容器
-
- 还可以在MySQL命令行界面中输入以下命令:
[root@zzsu db-docker]# docker-compose exec mysql-development mysql -uroot -p123.com testapp
- 6.Docker容器中创建并运行MySQL的
[root@zzsu db-docker]# cat docker-compose.yml
version: '3.1'
services:
mysql-development:
image: mysql:8.0.17
environment:
MYSQL_ROOT_PASSWORD: 123.com
MYSQL_DATABASE: testapp
ports:
- "3336:3306"
admin:
image: adminer
ports:
- "8080:8080"
mysql-old:
image: mysql:5.7.27
environment:
MYSQL_ROOT_PASSWORD: 123.com
MYSQL_DATABASE: simpleapp
ports:
- "3366:3306"
# 启动容器
[root@zzsu db-docker]# docker-compose down //先闭关之前启动的
[root@zzsu db-docker]# docker-compose up -d
# 查看
[root@zzsu db-docker]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8f77ad8fc3d9 mysql:8.0.17 "docker-entrypoint..." 10 seconds ago Up 7 seconds 33060/tcp, 0.0.0.0:3336->3306/tcp dbdocker_mysql-development_1
f817d0f93337 adminer "entrypoint.sh doc..." 10 seconds ago Up 8 seconds 0.0.0.0:8080->8080/tcp dbdocker_admin_1
303665b2b231 mysql:5.7.27 "docker-entrypoint..." 10 seconds ago Up 7 seconds 33060/tcp, 0.0.0.0:3366->3306/tcp dbdocker_mysql-old_1
# 进入mysql5.7
[root@zzsu db-docker]# docker-compose exec mysql-old mysql -uroot -p123.com simpleapp
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| simpleapp |
| sys |
+--------------------+
5 rows in set (0.00 sec)