7.1 私有仓库搭建与配置
(1)拉取私有仓库镜像(此步省略)
docker pull registry
(2)启动私有仓库容器
docker run -di --name=registry -p 5000:5000 registry
(3)打开浏览器 输入地址http://192.168.200.150:5000/v2/_catalog看到{"repositories":[]}
表示私有仓库搭建成功并且内容为空
(4)修改daemon.json
vi /etc/docker/daemon.json
添加以下内容,保存退出。
{"insecure-registries":["192.168.200.150:5000/"]}
此步用于让 docker信任私有仓库地址
(5)重启docker 服务
systemctl restart docker
7.2 镜像上传至私有仓库
(1)标记此镜像为私有仓库的镜像
docker tag jdk1.8 192.168.184.141:5000/jdk1.8
(2)再次启动私服容器
docker start registry
(3)上传标记的镜像
docker push 192.168.184.141:5000/jdk1.8
7.3 阿里云远程仓库
首先大家要知道,一般小公司没有专门的Docker工程师去维护镜像,或者说我们打包好的镜像也不能说用硬盘来拷贝吧,这时我们需要将自己的镜像推送的远程仓库管理。
7.3.1 镜像上传至阿里云仓库
7.3.1.1 Dockerfile定义Tomcat9镜像
-
在/usr/local下创建一个文件夹 mydocker
-
将jdk和tomcat安装的压缩包拷贝进mydocker目录
apache-tomcat-9.0.8.tar.gz、jdk-8u171-linux-x64.tar.gz
-
在当前目录下新建Dockerfile文件(名称固定)
FROM centos:7 MAINTAINER itheima<itheima@itcast.cn> #把宿主机当前上下文的c.txt拷贝到容器/usr/local/路径下 #COPY c.txt /usr/local/cincontainer.txt #把java与tomcat添加到容器中 ADD jdk-8u171-linux-x64.tar.gz /usr/local/java/ ADD apache-tomcat-9.0.13.tar.gz /usr/local/ #安装vim编辑器 RUN yum -y install vim #设置工作访问时候的WORKDIR路径,登录落脚点 ENV MYPATH /usr/local WORKDIR $MYPATH #配置java与tomcat环境变量 ENV JAVA_HOME /usr/local/java/jdk1.8.0_171 ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.13 ENV CATALINA_BASE /usr/local/apache-tomcat-9.0.13 ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin #容器运行时监听的端口 EXPOSE 8080 #启动时运行tomcat # ENTRYPOINT ["/usr/local/apache-tomcat-9.0.8/bin/startup.sh" ] # CMD ["/usr/local/apache-tomcat-9.0.8/bin/catalina.sh","run"] CMD /usr/local/apache-tomcat-9.0.13/bin/startup.sh && tail -F /usr/local/apache-tomcat-9.0.13/logs/catalina.out
-
构建镜像
docker build -t mytomcat9 .
-
运行容器
docker run -id -p 9080:8080 --name mytomcat -v /usr/local/tomcat9/test:/usr/local/apache-tomcat-9.0.13/webapps/test -v /usr/local/tomcat9/tomcat9logs/:/usr/local/apache-tomcat-9.0.13/logs --privileged=true mytomcat9
-
运行测试
-
保存镜像
docker commit -m=“提交的描述信息” -a=“作者” 容器ID 要创建的目标镜像名:[标签名]
docker commit -m="my tomcat9 with jdk8" -a="itheima" [容器ID] 目标镜像名:[tag]
7.3.1.2 推送仓库
-
创建阿里云仓库镜像的命名空间和仓库名称
-
将镜像推送到registry
docker login --username=yinbi786247 registry.cn-hangzhou.aliyuncs.com docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/hf-docker/docker_rep:[镜像版本号] docker push registry.cn-hangzhou.aliyuncs.com/hf-docker/docker_rep:[镜像版本号]
请根据实际镜像信息替换示例中的[ImageId]和[镜像版本号]参数。
-
阿里云查询是否推送成功
7.3.2 阿里云镜像下载到本地
docker pull registry.cn-hangzhou.aliyuncs.com/hf-docker/docker_rep:[镜像版本号]