一、docker部署MySQL
1.1.拉取镜像
docker pull mysql
1.2.查看镜像
docker images
1.3.启动容器
docker run \
--restart=always \
--privileged=true \
-p 3306:3306 \
--name mysql \
-e MYSQL_ROOT_PASSWORD=123456a \
-d mysql:latest \
--default_authentication_plugin=mysql_native_password \
--character-set-server=utf8mb4 \
--collation-server=utf8mb4_general_ci
1.3. 创建挂载目录
mkdir -p /opt/docker/mysql/{conf,logs,data}
1.5.复制容器配置文件到挂载目录
docker cp mysql: /etc/mysql/my.cnf /opt/docker/mysql/conf/
1.6.销毁容器
docker rm -f 容器ID
1.7.挂载方式启动容器
docker run \
--privileged=true \
--restart=always \
-v /opt/docker/mysql/conf/my.cnf:/etc/mysql/my.cnf \
-v /opt/docker/mysql/data:/var/lib/mysql \
-v /opt/docker/mysql/logs:/var/log/mysql \
--privileged=true \
-p 3307:3306 \
--name mysql \
-e MYSQL_ROOT_PASSWORD=123456a \
-d mysql:latest \
--default_authentication_plugin=mysql_native_password \
--character-set-server=utf8 \
--collation-server=utf8_general_ci
参数解析
- -p:端口映射 宿主机端口:容器内端口
- –restart-always: docker服务启动时,自动启动容器,并且当容器停止时,尝试重启容器
- –restart具体参数值详细信息:
no - 容器退出时,不重启容器;
on-failure - 只有在非0状态退出时才从新启动容器;
always - 无论退出状态是如何,都重启容器; - -name 指定容器名称
- -e: 指定环境变量,容器中可以使用该环境变量
- -v:为容器挂载目录,比如 /usr/docker/data:/data 前者为数宿主机目录后者为容器内目录
- -d:后台运行容器,并返回容器ID
MYSQL_ROOT_PASSWORD:设置root密码为123456a - –character-set-server:设置数据库编码为uft8
- –collation-serverr:设置默认排序规则为utf8_unicode_ci
- default_authentication_plugin=mysql_native_password 设置mysql8的密码加密方式为mysql_native_password