Docker镜像上传到私人仓库
push到Docker Hub1.注册DockerHub账号2.1 Dockerfile生成镜像3. 运行Dockerfile文件生成镜像4. 登陆DockerHub4. 打标签5. 上传到DockerHub push到阿里云镜像库1. 创建阿里云账号2. 登陆阿里云账号3. 给镜像打标签3. 上传到阿里云容器push到Docker Hub
1.注册DockerHub账号
官方网站:/products/docker-hub
2.1 Dockerfile生成镜像
下面我以自己的Dockerfile文件来演示
1.这是我的目录结构
[root@localhost dockerfile]# tree .├── apache-tomcat-9.0.52.tar.gz├── data│ ├── logs│ ├── test│ │ └── index.jsp│ └── web.xml├── Dockerfile├── jdk-8u291-linux-x64.tar.gz└── readme.txt
2.Dockerfile文件内容
[root@localhost dockerfile]# vim Dockerfile FROM centosMAINTAINER jing_lron<954213209@>COPY readme.txt /usrl/local/readme.txtADD jdk-8u291-linux-x64.tar.gz /usr/local/ADD apache-tomcat-9.0.52.tar.gz /usr/local/RUN yum -y install vimENV MYPATH /usr/localWORKDIR $MYPATHENV JAVA_HOME /usr/local/jdk1.8.0_291ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarENV CATALINA_HOME /usr/local/apache-tomcat-9.0.52ENV CATALINA_BASH /usr/local/apache-tomcat-9.0.52ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/binEXPOSE 8080CMD /usr/local/apache-tomcat-9.0.52/bin/startup.sh && tail -F /url/local/apache-tomcat-9.0.52/bin/logs/catalina.out
3. 运行Dockerfile文件生成镜像
[root@localhost dockerfile]# docker build -f Dockerfile(你的dockerfile名) -t diytomcat(要生成镜像的名) . (注意这里有个点)
[root@localhost dockerfile]# docker build -f Dockerfile -t diytomcat .Sending build context to Docker daemon 156.5MBStep 1/14 : FROM centos---> 300e315adb2fStep 2/14 : MAINTAINER jing_lron<123456789@>---> Using cache---> dcc601d9aeb6Step 3/14 : COPY readme.txt /usrl/local/readme.txt---> Using cache---> f331491f8768Step 4/14 : ADD jdk-8u291-linux-x64.tar.gz /usr/local/---> Using cache---> 4b5bb8355692Step 5/14 : ADD apache-tomcat-9.0.52.tar.gz /usr/local/---> Using cache---> 311e8ce6cb67Step 6/14 : ENV MYPATH /usr/local---> Using cache---> 08e2305596bcStep 7/14 : WORKDIR $MYPATH---> Using cache---> b5b9bcd7c69dStep 8/14 : ENV JAVA_HOME /usr/local/jdk1.8.0_291---> Using cache---> 63751e007651Step 9/14 : ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar---> Using cache---> cfdb9461112bStep 10/14 : ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.52---> Using cache---> 678ce4ff2659Step 11/14 : ENV CATALINA_BASH /usr/local/apache-tomcat-9.0.52---> Using cache---> bc5c86bef91dStep 12/14 : ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin---> Using cache---> 2e60a8dc55d1Step 13/14 : EXPOSE 8080---> Using cache---> 76aa0fe80490Step 14/14 : CMD /usr/local/apache-tomcat-9.0.52/bin/startup.sh && tail -F /url/local/apache-tomcat-9.0.52/bin/logs/catalina.out---> Using cache---> 75d38df6f360Successfully built 75d38df6f360Successfully tagged diytomcat:latest
此时镜像文件已经生成
[root@localhost dockerfile]# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEdiytomcat latest 75d38df6f360 10 hours ago585MB
4. 登陆DockerHub
[root@localhost dockerfile]# docker login -u <你的账户名>
[root@localhost dockerfile]# docker login -u jing***** Password: WARNING! Your password will be stored unencrypted in /root/.docker/config.json.Configure a credential helper to remove this warning. See/engine/reference/commandline/login/#credentials-storeLogin Succeeded
4. 打标签
为什么要打标签?
因为当许多人都上传同一个名字的镜像时会导致无法分辨那个镜像是谁上传的,所以要在镜像前面打上上传者账号名和在镜像后面加上版本号
这是未打标签的镜像
[root@localhost dockerfile]# docker imagesREPOSITORYTAG IMAGE ID CREATED SIZEdiytomcatlatest 75d38df6f360 11 hours ago 585MB.......
为jingcentos1.0打标签
[root@localhost dockerfile]# docker tag diytomcat:latest jingziyang/diytomcat:v1
打完标签后
[root@localhost dockerfile]# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEjingziyang/diytomcat v1 75d38df6f360 11 hours ago 585MB......
5. 上传到DockerHub
[root@localhost dockerfile]# docker push jingziyang/diytomcat:v1The push refers to repository [docker.io/jingziyang/jingcentos]b7ade542ceba: Pushed 34891d097958: Pushed 2da4ae156620: Pushed 2653d992f4ef: Pushed v1: digest: sha256:d92c37b17ecd0bf29e214c3ff83c83cde9525b74b2d152efacfcb540f3b37798 size: 5850
退出DockerHub账号
[root@localhost dockerfile]# docker logoutRemoving login credentials for https://index.docker.io/v1/
push到阿里云镜像库
1. 创建阿里云账号
阿里云官网:/
1.创建账号进入容器镜像服务
2.咱们一般为个人实例
3.创建命名空间和仓库
2. 登陆阿里云账号
$ docker login --username=jzy_****(你的账号) -
[root@localhost dockerfile]# docker login --username=jzy_**** -Password: WARNING! Your password will be stored unencrypted in /root/.docker/config.json.Configure a credential helper to remove this warning. See/engine/reference/commandline/login/#credentials-storeLogin Succeeded
3. 给镜像打标签
1.打标签,未打标签镜像
[root@localhost dockerfile]# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEdiycentos v175d38df6f36011 hours ago585MB.........
将要上传的镜像打标签
[root@localhost dockerfile]# docker tag 75d38df6f360 -/workspace_001/workspace:v2..........
打完标签后
[root@localhost dockerfile]# docker imagesREPOSITORYTAG IMAGE ID CREATED -/workspace_001/workspace v2 75d38df6f360 11 hours ago 585MB...........
3. 上传到阿里云容器
[root@localhost dockerfile]# docker push -/workspace_001/workspace:v2The push refers to repository [-/workspace_001/workspace]b7ade542ceba: Pushed 34891d097958: Pushed 2da4ae156620: Pushed 2653d992f4ef: Pushed v2: digest: sha256:d92c37b17ecd0bf29e214c3ff83c83cde9525b74b2d152efacfcb540f3b37798 size: 1161