1、DockerFile解析
1、简介
Dockerfile是用来构建Docker镜像的构建文件,是由一系列命令和参数构成的脚本。
1、构建三步骤
以centos为例
-
FROM scratch
ADD centos-8-x86_64.tar.xz /
LABEL org.label-schema.schema-version="1.0" org.label-schema.name="CentOS Base Image" org.label-schema.vendor="CentOS" org.label-schema.license="GPLv2" org.label-schema.build-date="20201204"
CMD ["/bin/bash"]
2、DockerFile构建过程解析
1、Dockerfile内容基础知识
1:每条保留字指令都必须为大写字母且后面要跟随至少一个参数
- 2: 指令按照从上到下,顺序执行
- 3: #表示注释
-
2、Docker执行Dockerfile的大致流程
(1) docker从基础镜像运行一个容器
- (2)执行一条指零并对容器作出修改
- (3)执行类似docker commit的操作提交一个新的镜像层
- (4) docker再基于刚提交的镜像运行一个新容器
(5)执行dockerfile中的下一条指令直到所有指令都执行完成
3、小总结
从应用软件的角度来看,Dockerfile、 Docker镜像与Docker容器分别代表软件的三个不同阶段。
- Dockerfile是软件的原材料
- Docker镜像是软件的交付品
- Docker容器则可以认为是软件的运行态。
- Dockerfile面向开发,Docker镜 像成为交付标准,Docker容器则涉及部署与运维,三者缺一不可, 合力充当Docker体系的基石。
- 1 Dockerfile, 需要定义一个Dockerfile, Dockerfile定义了进程需要的一切东西。Dockerfile涉及的内容包括执行代码或者是文件、环境变量、依赖包、运行时环境、动态链接库、操作系统的发行版、服务进程和内核进程(当应用进程需要和系统服务和内核进程打交道,这时需要考虑如何设计namespace的权限控制)等等;
- 2 Docker镜像,在用Dockerfile定义一个文件之后,docker build时会产生一个Docker镜像,当运行Docker镜像时,会真正开始提供服务;
-
3、DockerFile体系结构
1、相关命令
FROM
- 当前编写的这个镜像是基于哪个镜像的
- MAINTAINER
- 镜像维护者的姓名和邮箱
- RUN
- 容器构建的时候需要运行的命令
- EXPOSE
- 当前容器对外暴露的运行的端口
- WORKDIR
- 登录的时候工作目录
- ENV
- 用来在构建镜像过程中设置环境变量
- ENV MY_PATH /usr/mytest这个环境变量可以在后续的任何RUN指令中使用,这就如同在命令前面指定了环境变量前缀一样;也可以在其它指令中直接使用这些环境变量,
- 比如: WORKDIR $MY_PATH
- 用来在构建镜像过程中设置环境变量
- ADD
- 将宿主机目录下的文件拷贝进镜像且ADD命令会自动处理URL和解压tar压缩包
- COPY
- 类似ADD,拷贝文件和目录到镜像中。将从构建上下文目录中<源路径>的文件/目录复制到新的一层的镜像内的<目标路径>位置
- COPY src dest
- COPY [“src”,”dest”]
- 类似ADD,拷贝文件和目录到镜像中。将从构建上下文目录中<源路径>的文件/目录复制到新的一层的镜像内的<目标路径>位置
- VOLUME
- 容器数据卷用于数据保存和执久化工作
- CMD
- 指定一个容器启动时要运行的命令
- Dockerfile中可以有多个CMD指令,但只有最后一个生效,CMD会被docker run之后的参数替换
- CMD谷器后动命令CMD指令的格式和RUN相似,也是两种格式:
- shell格式: CMD <命令>
- exec 格式: CID [“可执行文件”,”参数1”, “参数2”…]
- 参数列表格式: CMD [“参数1”,“参数2”…]。指定了ENTRYPOINT 指令后,用CMD指定具体的参数。
- ENTRYPOINT
- 指定一个容器启动时要运行的命令
- ENTRYPOINT的目的和CMD一样,都是在指定容器启动程序及参数
ONBUILD
初始centos运行该镜像进时默认路径是/
- 默认不支持vim
- 默认不支持ifconfig
(1)编写dockerfile文件
from centos
ENV mypath /tmp
WORKDIR $mypath
RUN yum -y install vim
RUN yum -y install net-tools
EXPOSE 80
CMD /bin/bash
(2)编译该文件
djydeMacBook-Pro:Desktop DD$ docker build -f mycentos -t djy/mycentos:2.0 .
[+] Building 1.0s (8/8) FINISHED
=> [internal] load build definition from mycentos 0.0s
=> => transferring dockerfile: 163B 0.0s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 2B 0.0s
=> [internal] load metadata for docker.io/library/centos:latest 0.0s
=> [1/4] FROM docker.io/library/centos 0.0s
=> CACHED [2/4] WORKDIR /tmp 0.0s
=> CACHED [3/4] RUN yum -y install vim 0.0s
=> CACHED [4/4] RUN yum -y install net-tools 0.0s
=> exporting to image 0.8s
=> => exporting layers 0.8s
=> => writing image sha256:e7ce4ec15795e6c98e98c1f2c20f0299c50d58800f3d2 0.0s
=> => naming to docker.io/djy/mycentos:2.0 0.0s
djydeMacBook-Pro:Desktop DD$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
djy/mycentos 2.0 e7ce4ec15795 48 seconds ago 292MB
(3)运行容器
djydeMacBook-Pro:Desktop DD$ docker run -it --name mycentos e7ce4ec15795
(4)查看历史
djydeMacBook-Pro:Desktop DD$ docker history e7ce4ec15795
IMAGE CREATED CREATED BY SIZE COMMENT
e7ce4ec15795 6 minutes ago CMD ["/bin/sh" "-c" "/bin/bash"] 0B buildkit.dockerfile.v0
<missing> 6 minutes ago EXPOSE map[80/tcp:{}] 0B buildkit.dockerfile.v0
<missing> 6 minutes ago RUN /bin/sh -c yum -y install net-tools # bu… 14.4MB buildkit.dockerfile.v0
<missing> 6 minutes ago RUN /bin/sh -c yum -y install vim # buildkit 68.1MB buildkit.dockerfile.v0
<missing> 7 minutes ago WORKDIR /tmp 0B buildkit.dockerfile.v0
<missing> 7 minutes ago ENV mypath=/tmp 0B buildkit.dockerfile.v0
<missing> 8 months ago /bin/sh -c #(nop) CMD ["/bin/bash"] 0B
<missing> 8 months ago /bin/sh -c #(nop) LABEL org.label-schema.sc… 0B
<missing> 8 months ago /bin/sh -c #(nop) ADD file:bd7a2aed6ede423b7… 209MB
3、CMD/ENTRYPOINT区别
-
1、CMD
Dockerfile中可以有多个CMD指令,但只有最后一个生效,CMD会被docker run之后的参数替换
Case
- tomcat的讲解演示
- docker run -it tomcat ls -l
djydeMacBook-Pro:Desktop DD$ docker run -it tomcat ls -l total 156 -rw-r--r-- 1 root root 18949 Jul 31 04:12 BUILDING.txt -rw-r--r-- 1 root root 6210 Jul 31 04:12 CONTRIBUTING.md -rw-r--r-- 1 root root 57092 Jul 31 04:12 LICENSE -rw-r--r-- 1 root root 2333 Jul 31 04:12 NOTICE -rw-r--r-- 1 root root 3372 Jul 31 04:12 README.md -rw-r--r-- 1 root root 6898 Jul 31 04:12 RELEASE-NOTES -rw-r--r-- 1 root root 16507 Jul 31 04:12 RUNNING.txt drwxr-xr-x 2 root root 4096 Aug 18 20:48 bin drwxr-xr-x 2 root root 4096 Jul 31 04:12 conf drwxr-xr-x 2 root root 4096 Aug 18 20:47 lib drwxrwxrwx 2 root root 4096 Jul 31 04:12 logs drwxr-xr-x 2 root root 4096 Aug 18 20:47 native-jni-lib drwxrwxrwx 2 root root 4096 Aug 18 20:47 temp drwxr-xr-x 2 root root 4096 Aug 18 20:47 webapps drwxr-xr-x 7 root root 4096 Jul 31 04:12 webapps.dist drwxrwxrwx 2 root root 4096 Jul 31 04:12 work djydeMacBook-Pro:Desktop DD$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES bae11da09497 e7ce4ec15795 "/bin/sh -c /bin/bash" 15 minutes ago Up 15 minutes 80/tcp mycentos 6a7996772568 djy/centos "/bin/sh -c /bin/bash" 20 hours ago Up 20 hours dc04 djydeMacBook-Pro:Desktop DD$
2、ENTRYPOINT
- docker run -it tomcat ls -l
- tomcat的讲解演示
docker run之后的参数会被当做参数传递给ENTRYPOINT,之后形成新的命令组合
from centos run yum install -y curl cmd ["curl", "-s", "http://ip.cn"]
上面这个dockerfile被编译之后docker run mycentos -i后面加的参数直接cmd [“curl”, “-s”, “http://ip.cn"]被替换成了-i 这个命令会报错找到不到这个命令
from centos run yum install -y curl entrypoint ["curl", "-s", "http://ip.cn"]
而这个docker run mycentos -i运行之后会 会相当于变成了entrypoint [“curl”, “-s”, “-i”, “http://ip.cn“]
4、ONBUILD
当构建一个被继承的Dockerfile时运行命令,父镜像在被子继承后父镜像的onbuild被触发
父dockerfilefrom centos onbuild run echo 'father images onbuild'
子dockerfile
from myipfather
build之后会到会有一句打印
RUN echo ‘father images onbuild’djydeMacBook-Pro:dockerfile DD$ docker build -f myipfather -t myipfather . [+] Building 0.1s (5/5) FINISHED => [internal] load build definition from myipfather 0.0s => => transferring dockerfile: 94B 0.0s => [internal] load .dockerignore 0.0s => => transferring context: 2B 0.0s => [internal] load metadata for docker.io/library/centos:latest 0.0s => CACHED [1/1] FROM docker.io/library/centos 0.0s => exporting to image 0.0s => => exporting layers 0.0s => => writing image sha256:22bb20a93c7d19bef8453bfb9b775093cc387019bcb34 0.0s => => naming to docker.io/library/myipfather 0.0s djydeMacBook-Pro:dockerfile DD$ docker build -f myip2 -t myip2 . [+] Building 0.4s (6/6) FINISHED => [internal] load build definition from myip2 0.0s => => transferring dockerfile: 53B 0.0s => [internal] load .dockerignore 0.0s => => transferring context: 2B 0.0s => [internal] load metadata for docker.io/library/myipfather:latest 0.0s => CACHED [1/1] FROM docker.io/library/myipfather 0.0s => [2/1] RUN echo 'father images onbuild' 0.2s => exporting to image 0.0s => => exporting layers 0.0s => => writing image sha256:09b51e4c4558f0719e6ea50557b9777de49a94be8ef9f 0.0s => => naming to docker.io/library/myip2
5、自定义镜像Tomcat9
(1)创建一个目录用于编写tomcat的dockerfile
- 并在文件夹里添加两个压缩文件
(2)创建dockerfile
FROM centos MAINTAINER djy<812297736@qq.com> #把宿主机当前上下文的c.txt拷贝到容器/usr/local/路径下 COPY c.txt /usr/local/cincontainer.txt #java与tomcat添加到容器中 ADD jdk-8u301-linux-x64.tar.gz /usr/local/ ADD apache-tomcat-9.0.52.tar.gz /usr/local/ #安装vim编辑器 RUN yum -y install vim #设置工作访问时候的WORKDIR路径,登录落脚点 ENV MYPATH /usr/local WORKDIR $MYPATH #配置java与tomcat环境变量 ENV JAVA_HOME /usr/local/jdk1.8.0_301 ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.52 ENV CATALINA_BASE /usr/local/apache-tomcat-9.0.52 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" ] RUN mkdir /usr/local/apache-tomcat-9.0.52/bin/logs/ RUN touch /usr/local/apache-tomcat-9.0.52/bin/logs/catalina.out CMD /usr/local/apache-tomcat-9.0.52/bin/startup.sh && tail -F /usr/local/apache-tomcat-9.0.52/bin/logs/catalina.out
(3)编译
docker build -f mytomcat -t djy/mytomcat .
djydeMacBook-Pro:tomcat9 DD$ docker build -f mytomcat -t djy/mytomcat . [+] Building 0.5s (13/13) FINISHED => [internal] load build definition from mytomcat 0.0s => => transferring dockerfile: 1.19kB 0.0s => [internal] load .dockerignore 0.0s => => transferring context: 2B 0.0s => [internal] load metadata for docker.io/library/centos:latest 0.0s => [internal] load build context 0.0s => => transferring context: 970B 0.0s => [1/8] FROM docker.io/library/centos 0.0s => CACHED [2/8] COPY c.txt /usr/local/cincontainer.txt 0.0s => CACHED [3/8] ADD jdk-8u301-linux-x64.tar.gz /usr/local/ 0.0s => CACHED [4/8] ADD apache-tomcat-9.0.52.tar.gz /usr/local/ 0.0s => CACHED [5/8] RUN yum -y install vim 0.0s => CACHED [6/8] WORKDIR /usr/local 0.0s => CACHED [7/8] RUN mkdir /usr/local/apache-tomcat-9.0.52/bin/logs/ 0.0s => [8/8] RUN touch /usr/local/apache-tomcat-9.0.52/bin/logs/catalina.out 0.3s => exporting to image 0.0s => => exporting layers 0.0s => => writing image sha256:750f924b9264dbe710e29f0b6d1c81ea762ac891b25f5 0.0s => => naming to docker.io/djy/mytomcat
(4)运行
docker run -it -p 8090:8080 -v /Users/djy/Desktop/tomcat9/test:/usr/local/apache-tomcat-9.0.52/webapp/test -v /Users/djy/Desktop/tomcat9/logs://usr/local/apache-tomcat-9.0.52/logs --privileged=true djy/mytomcat
djydeMacBook-Pro:tomcat9 DD$ docker run -it -p 8090:8080 -v /Users/djy/Desktop/tomcat9/test:/usr/local/apache-tomcat-9.0.52/webapp/test -v /Users/djy/Desktop/tomcat9/logs://usr/local/apache-tomcat-9.0.52/logs djy/mytomcat Using CATALINA_BASE: /usr/local/apache-tomcat-9.0.52 Using CATALINA_HOME: /usr/local/apache-tomcat-9.0.52 Using CATALINA_TMPDIR: /usr/local/apache-tomcat-9.0.52/temp Using JRE_HOME: /usr/local/jdk1.8.0_301 Using CLASSPATH: /usr/local/apache-tomcat-9.0.52/bin/bootstrap.jar:/usr/local/apache-tomcat-9.0.52/bin/tomcat-juli.jar Using CATALINA_OPTS: Tomcat started.
运行之后容器卷挂载过来了
这样就相当于我们可以把test的访问发布在这里了(5)最终访问8080可以看到tomcat
(6)另外还可以访问这个镜像进行一些数据查看
- docker exec ab647de7fd65 ls -l
djydeMacBook-Pro:tomcat9 DD$ docker exec ab647de7fd65 ls -l total 52 drwxr-xr-x 1 root root 4096 Aug 26 18:53 apache-tomcat-9.0.52 drwxr-xr-x 2 root root 4096 Nov 3 2020 bin -rw-r--r-- 1 root root 0 Aug 26 18:43 cincontainer.txt drwxr-xr-x 2 root root 4096 Nov 3 2020 etc drwxr-xr-x 2 root root 4096 Nov 3 2020 games drwxr-xr-x 2 root root 4096 Nov 3 2020 include drwxr-xr-x 8 10143 10143 4096 Jun 9 13:58 jdk1.8.0_301 drwxr-xr-x 2 root root 4096 Nov 3 2020 lib drwxr-xr-x 3 root root 4096 Dec 4 2020 lib64 drwxr-xr-x 2 root root 4096 Nov 3 2020 libexec drwxr-xr-x 2 root root 4096 Nov 3 2020 sbin drwxr-xr-x 5 root root 4096 Dec 4 2020 share drwxr-xr-x 2 root root 4096 Nov 3 2020 src
5、总结
2、Docker常用安装
1、总体步骤
(1)搜索镜像
(2)拉取镜像
(3)查看镜像
(4)启动镜像
(5)停止容器
(6)移除容器2、安装tomcat
- docker exec ab647de7fd65 ls -l
docker hub上面查找tomcat镜像
- docker serach tomcat
- 从docker hub上拉取tomcat镜像到本地
- docker pull tomcat
- docker images 查看是否有拉取到的tomcat
使用tomcat镜像创建容器(也叫运行镜像)
docker hub上面查找mysql镜像
- docker search mysql
- 从docker hub上(阿里云加速器)拉取mysql镜像到本地标签为5.6
- docker pull mysql:5.6
使用mysql运行5.6镜像容器
docker run -p 10004:3306 --name mysql --security-opt seccomp=unconfined -v /Users/djy/Desktop/mysql/conf:/etc/mysql/conf.d -v /Users/djy/Desktop/mysql/logs:/logs -v /Users/djy/Desktop/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6
进入mysql的centos容器中
安装在mydata文件夹下
- —security-opt seccomp=unconfined 关闭Seccomp安全问题
- 不然容易出现mbind: Operation not permitted问题
docker run --name mysql --security-opt seccomp=unconfined -p 3306:3306 -v /mydata/mysql/conf:/etc/mysql/conf.d -v /mydata/mysql/logs:/logs -v /mydata/mysql/lib:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:8.0
3、进入容器配置时区(永久)
1、进入容器
docker exec -it 容器名称/容器id /bin/bash
2、进入目录
cd /etc/mysql
下面有文件
参考如下,或者直接执行下面的命令
https://blog.csdn.net/qq_40016971/article/details/107887486
sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
设置完镜像需要执行
apt-get update
4、进入配置文件添加配置
default-time-zone = '+08:00'
-
4、进入数据临时修改时区
SET GLOBAL time_zone = '+8:00'
5、解决docker中运行的mysql总是卡住的问题
1、命令查看mysql日志
docker logs -f mysql
总是出现
[Warning] [MY-010055] [Server] IP address ‘111.0.183.159’ could not be resolved: Temporary failure in name resolution
原因是mysql会反向dns 解析,所以有时候会出现解析失败,这个时候我们就可以禁用掉该功能2、解决方案
进入容器
docker exec -it mysql /bin/bash
3、进入目录
下面有文件
skip-name-resolve 关闭反向dns解析
[mysqld] skip-name-resolve
5、检查数据库时区
1、查看数据库当前时间
mysql> SELECT NOW(); +---------------------+ | NOW() | +---------------------+ | 2022-01-23 16:59:35 | +---------------------+ 1 row in set (0.01 sec)
2、检查当前数据库时区
mysql> SHOW VARIABLES LIKE '%time_zone%'; +------------------+--------+ | Variable_name | Value | +------------------+--------+ | system_time_zone | UTC | | time_zone | +08:00 | +------------------+--------+ 2 rows in set (0.01 sec)
6、解决docker中mysql(mbind: Operation not permitted)问题
1、原因
这是Docker的Seccomp安全限制问题
并且官方给出了指导和解释: DockerHup官方传送门
2、解决方法
在docker run命令中加入 —security-opt seccomp=unconfined
docker run --name mysql --security-opt seccomp=unconfined -p 3306:3306 -v /mydata/mysql/conf:/etc/mysql/conf.d -v /mydata/mysql/logs:/logs -v /mydata/mysql/lib:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:8.0
7、docker中mysql解决使用group by 失败的问题
在my.cnf中添加如下配置
[mysqld] sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
4、安装redis
docker hub上面查找mysql镜像
- docker search mysql
- 也可以在如下网址中查找:https://hub.docker.com/r/library/
- 从docker hub上(阿里云加速器)拉取redis镜像到本地标签
- docker pull redis:6.2.5
运行
- /Users/djy/Desktop/redis/conf/redis.conf 是一个目录
- 所以这里我们先创建出这个文件/redis/conf/redis.conf
docker run -p 6379:6379 -v /Users/djy/Desktop/redis/data:/data -v /Users/djy/Desktop/redis/conf/redis.conf:/usr/local/etc/redis.conf -d redis:6.2.5 redis-server /user/local/etc/redis/redis.conf --appendonly yes
5、安装gitea
1、下载镜像
docker pull gitea/gitea
2、启动
1、官方启动方式
docker run -d --name=gitea -p 10022:22 \ -p 10080:3000 -v /lianhong-brand-choice/mydata/gitea:/data \ gitea/gitea:latest
2、自己配置启动方式
- 所以这里我们先创建出这个文件/redis/conf/redis.conf
- /Users/djy/Desktop/redis/conf/redis.conf 是一个目录
注意安全组开放端口10080
docker run --name gitea -itd -p 10022:22 -p 3000:3000 \ -v /lianhong-brand-choice/mydata/gitea:/data \ --ip=8.136.154.180 \ gitea/gitea
3、配置nginx
域名要指向该服务器
这里配置成域名git.lhdxlhdx.com
upstream lianhong_gitea{ server 127.0.0.1:3000; } server { listen 80; server_name git.lhdxlhdx.com; location / { proxy_pass http://lianhong_gitea; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header REMOTE-HOST $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } error_page 500 502 503 504 /50x.html; location = /50x.html { } server_tokens off; }
4、访问网址
- 设置自己想要的账号名称
-
6、安装phpMyAdmin
1、命令运行
docker run --name phpmyadmin -d -e PMA_ARBITRARY=1 -p 8091:80 phpmyadmin/phpmyadmin
2、然后访问
输入你的ip和账号密码就行了
3、本地镜像发布到阿里云
1、发布流程
2、镜像的生成方法
- 1、前面的DockerFile生成
- 2、从容器创建一个新的镜像
- docker commit [options] 容器ID [repository[:tag]]
djydeMacBook-Pro:~ DD$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 1dfa74c2ce7a mysql "docker-entrypoint.s…" 2 hours ago Up 2 hours 3306/tcp, 33060/tcp recursing_solomon e8f127d655df mysql:5.6 "docker-entrypoint.s…" 8 hours ago Up 8 hours 0.0.0.0:10004->3306/tcp, :::10004->3306/tcp mysql 8b97e9e261d8 djy/mytomcat "/bin/sh -c '/usr/lo…" 8 hours ago Up 8 hours 0.0.0.0:8090->8080/tcp, :::8090->8080/tcp fervent_jones djydeMacBook-Pro:~ DD$ docker commit -a 'small red' -m 'test' 8b97e9e261d8 djy/mytomcat:3.0 sha256:b651aac4e3f37daa5d828a43c8a323f72935f2a51948ead7512fe522be54320d
- docker commit [options] 容器ID [repository[:tag]]
3、推送到远端的阿里云
1、本地镜像素材原型
djydeMacBook-Pro:~ DD$ docker images djy/centos REPOSITORY TAG IMAGE ID CREATED SIZE djy/centos latest 1b520c723bd3 8 months ago 209MB
阿里云开发者平台
- 创建仓库镜像
- 选择本地仓库
将镜像推送到registry
密码可以单独设置
docker login --username=红领巾账号3 registry.cn-hangzhou.aliyuncs.com
$ docker login --username=红领巾账号3 registry.cn-hangzhou.aliyuncs.com $ docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/daijunyi/centos1:[镜像版本号] $ docker push registry.cn-hangzhou.aliyuncs.com/daijunyi/centos1:[镜像版本号]
重新绑定一下镜像关系
djydeMacBook-Pro:~ DD$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE djy/mytomcat 3.0 b651aac4e3f3 11 minutes ago 655MB djydeMacBook-Pro:~ DD$ docker tag b651aac4e3f3 registry.cn-hangzhou.aliyuncs.com/daijunyi/centos1:1.0 djydeMacBook-Pro:~ DD$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE djy/mytomcat 3.0 b651aac4e3f3 11 minutes ago 655MB registry.cn-hangzhou.aliyuncs.com/daijunyi/centos1 1.0 b651aac4e3f3 11 minutes ago 655MB
开始推送
djydeMacBook-Pro:~ DD$ docker push registry.cn-hangzhou.aliyuncs.com/daijunyi/centos1:1.0 The push refers to repository [registry.cn-hangzhou.aliyuncs.com/daijunyi/centos1] 6bf3788d4708: Pushed 932747c60224: Pushed 4af77ac788e6: Pushed 5f70bf18a086: Pushed 989eccca733b: Pushed e7b54c3c05e5: Pushed 298f378fd461: Pushed 10279240a4e0: Pushed 2653d992f4ef: Pushed 1.0: digest: sha256:97ec1ff59ca5db2de5e362f52db0c15cf459e8ff3a3749ebe198c17b892811d8 size: 2201
拉取
docker pull registry.cn-hangzhou.aliyuncs.com/daijunyi/centos1:[镜像版本号]
公有云可以查询到
- 查看详情