Docker中部署MySQL数据库

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)
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值