自定义Docker镜像并推送到阿里云仓库

技术需求点:
1.自定义Redis的Docker镜像;
2.将镜像推送到阿里云仓库;
3.介绍自定义Docker镜像过程;

一.自定义Redis镜像

1.Dockfile文件
使用Dockerfile文件构建Docker镜像,Dockerfile由一行行命令组成,一般来说分为4部分:基础镜像信息,维护者信息,镜像操作指令,容器启动时执行指令。

首先在docker 目录下创建一个Dockerfile文件:


image.png

本次构建Redis镜像的Dockerfile文件如下:

#Dockerfile文件第一条必须为FROM指令,且如果在同一文件中创建多个镜像时,可以使用多个FROM指令
FROM centos:latest
#指定维护者信息
MAINTAINER leo
#在当前镜像基础上执行命令,并提交为新的镜像,当命令较长时可使用\换行,这里使用yum安装redis和依赖的包
RUN yum install epel-release -y && yum install redis -y && yum install net-tools -y
#告诉Docker容器暴露的端口号,供互联系统使用,在启动时通过-p映射端口,Docker主机会自动分配一个端口转发到指定端口
EXPOSE 6379
#指定启动容器时执行的命令,每个Dockerfile只能有一条CMD命令,如果制定了多条,只会执行最后一条
#如果用户启动容器时制定了运行的命令,会覆盖掉CMD指定的命令
#redis有个保护模式,需要关掉后(-protected-mode no)外部ip才能连上
CMD /usr/bin/redis-server -protected-mode no

除了上面的指令,Dockerfile其它常用指令还有:

  • ADD
    格式:ADD src dest
    复制指定本地目录中的文件到容器中的dest中,src可以是是一个绝对路径,也可以是一个URL或一个tar文件,tar文件会自动解压为目录
  • ENV
    格式:EVN
    指定一个环境变量,会被后续RUN指令使用,并在容器运行时保持;

2.构建镜像

docker build -t leo-redis .

构建的自定义镜像的名字是leo-redis,注意"."不能少,意思是指定使用当前文件下的Dockerfile文件构建镜像。


image.png

运行命令,出现Successfully built 247af7f3b88c(镜像id) 说明构建成功。通过docker images可以看到本地自定义的redis镜像。


image.png

3.运行镜像

docker run -d -p 6379:6379 [ImageId]

这里运行是看构建的redis镜像是否能正常使用,与本文主旨关系不大。

二.将镜像推送到阿里云仓库

1.注册阿里云账号,在控制台搜索容器镜像服务,进入,创建命名空间,创建镜像仓库等等...


image.png

2.进入仓库的管理,可以看到镜像的操作指南,按照指南操作即可。
(1)登录阿里云Registry

docker login --username=superxcp registry.cn-hangzhou.aliyuncs.com

(2)将镜像推送到Registry

docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/superxcp/docker_test:[镜像版本号]
docker push registry.cn-hangzhou.aliyuncs.com/superxcp/docker_test:[镜像版本号]

镜像版本号可以随便起。
(3)查看远端,推送成功!


image.png

你可能感兴趣的:(自定义Docker镜像并推送到阿里云仓库)