准备配置文件

my.conf

[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
max_connections=100

公网情况下

Dockefile

#使用官方5.7版本,latest为默认版本
FROM mysql:5.7
#设置环境变量 数据库密码
ENV MYSQL_ROOT_PASSWORD=123456
#将自定义的配置文件复制到容器内部
COPY my.conf /etc/my.conf
#开放3306端口
EXPOSE 3306
#运行命令启动mysql服务
CMD ["mysqld"]

build.sh

#构建镜像
docker build -t mysql .
#启动容器
docker run -d --name mysql --restart always -p 3306:3306 mysql

delete.sh

#停止容器
docker stop mysql
#删除容器
docker rm mysql
#删除镜像
docker rmi mysql

restart.sh

#更新配置
docker cp my.conf mysql:/etc/my.conf
#重启mysql容器
docker restart mysql

内网情况下

先准备好镜像包,可以使用如下命令,将公网镜像打包成tar

docker save -o mysql.tar mysql

然后在内网服务器载入镜像

docker load -i mysql.tar

 Dockefile

#使用内网镜像
FROM mysql
#设置环境变量 数据库密码
ENV MYSQL_ROOT_PASSWORD=123456
#将自定义的配置文件复制到容器内部
COPY my.conf /etc/my.conf
#开放3306端口
EXPOSE 3306
#运行命令启动mysql服务
CMD ["mysqld"]

build.sh

#加载Dockerfile
docker build -t mysql2 .
#启动容器
docker run -d --name mysql2 --restart always -p 3306:3306 mysql2

delete.sh

#停止容器
docker stop mysql2
#删除容器
docker rm mysql2
#删除镜像
docker rmi mysql2

restart.sh

#更新配置
docker cp my.conf mysql:/etc/my.conf
#重启mysql容器
docker restart mysql

以上文件必须在同一目录下!!!!!

以上文件必须在同一目录下!!!!!

以上文件必须在同一目录下!!!!!

补充
如果一开始没有设置my.cnf,那么Dockerfile里的ENV MYSQL_ROOT_PASSWORD=123456 失效,要在构建容器时加上 -e MYSQL_ROOT_PASSWORD=123456

docker run -d -p 3306:3306 --name mysql2 -e MYSQL_ROOT_PASSWORD=123456 -v /dockerval/mysql2:/var/lib/mysql mysql2

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐