Docker修改基础镜像后重新制作镜像推送到个人仓库
目录
Docker修改基础镜像后重新制作镜像推送到个人仓库
许多时候官方的镜像都需要配置后才能使用,比如mysql的时区等等,以最新的mysql8.3.0为例
拉取官方镜像
version: '3'
services:
mysql:
image: mysql:8.3.0
container_name: mysql8
# 指定容器退出后的重启策略为始终重启,但是不考虑在Docker守护进程启动时就已经停止了的容器
restart: unless-stopped
volumes:
# 数据卷挂载路径设置,将本机目录映射到容器目录
- "./config/my.cnf:/etc/mysql/my.cnf"
- "./data:/var/lib/mysql"
environment:
# 配置时区
TZ: Asia/Shanghai
LANG: en_US.UTF-8
# 设置root用户密码
MYSQL_ROOT_PASSWORD: 123456
privileged: true
user: root
# 映射端口
ports:
- "3306:3306"
my.cnf 配置文件
# 服务端参数配置
[mysqld]
user=mysql # MySQL启动用户
default-storage-engine=INNODB # 创建新表时将使用的默认存储引擎
character-set-server=utf8mb4 # 设置mysql服务端默认字符集
collation-server=utf8mb4_general_ci # 数据库字符集对应一些排序等规则,注意要和character-set-server对应
default-authentication-plugin=mysql_native_password
max_connections=1000 # 允许最大连接数
max_connect_errors=100 # 最大错误连接数
[mysql]
default-character-set=utf8mb4
[client]
default-character-set=utf8mb4 # 设置mysql客户端默认字符集
启动容器
docker-compose up -d
修改官方镜像后制作自己的镜像
登录阿里云镜像仓库创建一个镜像
将修改后的官方镜像提交为新的镜像
registry.cn-beijing.aliyuncs.com/wuhm/mysql
为新创建的仓库名称
docker commit mysql8 registry.cn-beijing.aliyuncs.com/wuhm/mysql:8.3.0
推送镜像到阿里云仓库
docker login --username=[阿里云用户名] registry.cn-beijing.aliyuncs.com
docker tag [ImageId] registry.cn-beijing.aliyuncs.com/wuhm/mysql:[镜像版本号]
docker push registry.cn-beijing.aliyuncs.com/wuhm/mysql:[镜像版本号]
###
docker tag 9aed9d399752 registry.cn-beijing.aliyuncs.com/wuhm/mysql:8.3.0
docker push registry.cn-beijing.aliyuncs.com/wuhm/mysql:8.3.0