文章目录
Docker中CentOS镜像使用MySQL
##1 环境&需求
#1.1 环境
Mac
Docker
-CentOS 6.9
-MySQL 5.7
#1.2 需求
- 在docker中创建一个CentOS
- 在CentOS中安装MySQL
- 在宿主机(Mac)链接CentOS中的MySQL
#2 docker的配置
- Docker拉取CentOS镜像
- 创建CentOS容器
- 进入CentOS容器
#2.1 拉取CentOS镜像
docker pull centos:6.9
查看刚刚拉取的CentOS 6.9镜像
docker images
#2.1 创建CentOS 6.9容器
docker run -it centos:6.9 /bin/bash
# 命令注释如下:
# run: 创建容器的命令(固定格式)
# -it: 以交互式模式运行容器(一般-i-t同时出现)
# /bin/bash: 使用容器的命令输入命令(进入容器终端)
进入CentOS终端后, root@d2568b5fe7b3中@符号后面的内容指的是该容器对应的ID,容器ID不等于镜像ID
- 查看正在运行的容器
╭─coxhuang@Cox.local ~
╰─➤ docker ps 130 ↵
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d2568b5fe7b3 centos:6.9 "/bin/bash" 5 minutes ago Up 5 minutes happy_mcclintock
5437aa4212f8 centos:6.8 "/bin/bash" About an hour ago Up About an hour gifted_fermat
第一列CONTAINER ID是容器的ID, 也就是进入容器后, root@后面显示的那串内容
STATUS是容器的状态, 容器的状态7种
STATUS | 说明 |
---|---|
created | 已创建 |
restarting | 重启中 |
running | 运行中 |
removing | 迁移中 |
paused | 暂停 |
exited | 停止 |
dead | 死亡 |
#2.2 进入/退出容器
- 进入容器
# 进入容器
docker attach d2568b5fe7b3
# docker attach 容器ID
╭─coxhuang@Cox.local ~
╰─➤ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d2568b5fe7b3 centos:6.9 "/bin/bash" 33 minutes ago Up 33 minutes happy_mcclintock
5437aa4212f8 centos:6.8 "/bin/bash" About an hour ago Up About an hour gifted_fermat
╭─coxhuang@Cox.local ~
╰─➤ docker attach d2568b5fe7b3
[root@d2568b5fe7b3 /]#
- 退出容器
- exit
退出并杀死容器
╭─coxhuang@Cox.local ~
╰─➤ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5437aa4212f8 centos:6.8 "/bin/bash" About an hour ago Up About an hour gifted_fermat
╭─coxhuang@Cox.local ~
╰─➤ docker run -it centos:6.9 /bin/bash
[root@ced5ed59ec2c /]# ls
bin dev etc home lib lib64 lost+found media mnt opt proc root sbin selinux srv sys tmp usr var
[root@ced5ed59ec2c /]# mkdir haha
[root@ced5ed59ec2c /]# ls
bin dev etc haha home lib lib64 lost+found media mnt opt proc root sbin selinux srv sys tmp usr var
[root@ced5ed59ec2c /]# exit
exit
╭─coxhuang@Cox.local ~
╰─➤ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5437aa4212f8 centos:6.8 "/bin/bash" About an hour ago Up About an hour gifted_fermat
╭─coxhuang@Cox.local ~
╰─➤ docker run -it centos:6.9 /bin/bash
[root@6e12db3af46f /]# ls
bin dev etc home lib lib64 lost+found media mnt opt proc root sbin selinux srv sys tmp usr var
[root@6e12db3af46f /]#
- Ctrl+Q+P
退出后,后台容器仍在运行
[root@6e12db3af46f /]# mkdir haha2
[root@6e12db3af46f /]# ls
bin dev etc haha2 home lib lib64 lost+found media mnt opt proc root sbin selinux srv sys tmp usr var
[root@6e12db3af46f /]# % ╭─coxhuang@Cox.local ~
╰─➤ docker attach 6e12db3af46f
[root@6e12db3af46f /]# ls
bin dev etc haha2 home lib lib64 lost+found media mnt opt proc root sbin selinux srv sys tmp usr var
[root@6e12db3af46f /]#
#3 在CentOS容器中使用MySQL
3.1 安装MySQL
- 安装wget
yum install -y wget
- 安装MySQL官方的 Yum Repository
wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql57-community-release-el7-10.noarch.rpm
- 安装MySQL5.7
yum install -y mysql-server
- 启动MySQL
service mysqld start
或者
/etc/init.d/mysqld start
- 修改密码
https://blog.youkuaiyun.com/Coxhuang/article/details/103332961
- 进入MySQL
mysql -u root -p
#4 保存当前镜像
- 退出容器
exit
- 提交容器
docker commit 5437aa4212f8 centos:addmysql
# docker commit 容器ID 镜像名:TAG
[root@5437aa4212f8 /]# exit
exit
╭─coxhuang@Cox.local ~
╰─➤ docker commit 5437aa4212f8 centos:addmysql
sha256:25753ae423774c946936fd22ccb73d14967b0db87956b7fc0bed167e4049c572
╭─coxhuang@Cox.local ~
╰─➤ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos addmysql 25753ae42377 7 seconds ago 442MB
centos 6.8 82f3b5f3c58f 9 months ago 195MB
centos 6.9 2199b8eb8390 9 months ago 195MB
mysql 5.7.21 5195076672a7 22 months ago 371MB
╭─coxhuang@Cox.local ~
╰─➤ docker run -it centos:addmysql /bin/bash
[root@cca8b56a08c2 /]# mysql -u root -p
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
[root@cca8b56a08c2 /]# service mysqld start
Starting mysqld: [ OK ]
[root@cca8b56a08c2 /]#