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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值