Dockerfile构建mysql容器(公网、内网)
Dockerfile构建mysql容器(公网、内网)
·
准备配置文件
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
更多推荐
已为社区贡献5条内容
所有评论(0)