使用docker快速部署mysql容器
安装docker
# 安装Docker-CE yum install -y yum-utils device-mapper-persistent-data lvm2 # 增加最新版本的Docker安装仓库 yum-config-manager --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo # 安装Docker-CE版本 sudo yum install -y docker-ce docker-ce-cli containerd.io # 启动docker sudo systemctl enable docker # 允许开机启动 sudo systemctl start docker
下载mysql镜像文件
# 查看所需镜像版本,这里是查看mysql 5.6版本 # 默认会下载5.6里面最新的版本 docker search mysql:5.6 # 下载对应版本的mysql,是用mysql:版本号 docker pull mysql:5.6
配置文件
[client] default-character-set=utf8 [mysqld] character-set-server=utf8 default-storage-engine=INNODB collation-server=utf8_general_ci pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock datadir = /var/lib/mysql log-error = /var/log/mysql/error.log [mysql] default-character-set=utf8
存放路径,可以自行修改,修改之后记得更改启动容器的路径参数
/home/docker-conf/mysql/cnf/my.cnf
启动容器命令
docker run -it \ --name=mysql \ # 如果更改了存放路径,记得修改下面的配置参数 \ -v /home/docker-conf/mysql/cnf/:/etc/mysql/conf.d \ -e MYSQL_ROOT_PASSWORD=123456 \ # --ip 127.0.0.1 \ -p 3306:3306 \ -d mysql:5.6 \ /bin/bash
参数解读
--name 自定义名字,两个
-
-v 文件挂载目录
:
前面的是宿主机的目录,后面则是容器的目录 -e 设置mysql的初始密码,不过貌似没什么用
-p 端口映射
:
前面的是映射到宿主机的端口,后面则是容器的端口 比如mysql默认端口是3306,意思就是把mysql容器的3306端口映射到宿主机的3306端口,
可以通过访问宿主机的3306端口访问到mysql容器
-d 表示后台运行
后面的则是镜像名和版本号
进入容器内部
docker attach mysql # 或者 docker exec -it 容器名或者container ID
执行mysql命令
usermod -d /var/lib/mysql/ mysql
启动mysql
service mysql start
使用mysql
mysql -uroot -p 提示输入密码。直接回车.
其他命令
因为container ID是通过hash算法来实现的,所以正常情况下每个容器的ID都是唯一的,为了方便操作,取前几位就可以了,只要取的值和其他容器的相同个数的没有重复的即可
# 比如
container ID name
a12345 mysql01
a11234 centos7.6
b12345 mysql02
b23456 centos6.8
c23456 redis
# 可以这么来取
docker start a12
# 也可以这样
docker start mysql01
# 更简单的
docker start c # 因为c开头的就一个
查看正在运行的容器
docker ps
查看所有容器(包括没有运行的)
docker ps -a
启动容器
docker start 容器名或container ID
停止容器
docker stop 容器名或container ID
删除容器
docker rm container ID # 注意:运行的容器一定要先stop,再rm
查看镜像文件
docker images