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

0%