Docker:制作镜像上传阿里云

1、准备要上传镜像的材料

apache-tomcat-8.5.83.tar.gz
jdk-8u202-linux-x64.tar.gz

jdk 和Tomcat自己去官网下载

2、编写Dockerfile 文件

# 基础镜像
FROM ubuntu
 
# 描述
MAINTAINER jdk_comcat:8
 
# 解压与复制jdk.tar.gz
# 由于add/copy的文件必须使用上下文目录的内容, 因此要先将jdk.tar.gz拷贝到当前目录
ADD jdk-8u202-linux-x64.tar.gz /usr/local
ADD apache-tomcat-8.5.83.tar.gz /usr/local
 
# 配置 JDK 的环境变量和字符集
ENV JAVA_HOME /usr/local/jdk1.8.0_202
ENV PATH $JAVA_HOME/bin:$PATH
ENV CLASSPATH .:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV LANG C.UTF-8
 
# 配置tomcat环境变量
ENV CATALINA_HOME /usr/local/apache-tomcat-8.5.83
ENV CATALINA_BASE /usr/local/apache-tomcat-8.5.83
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
 
# 暴露端口
EXPOSE 8080
 
# 启动tomcat -- 最后的命令要一直运行下去,以防容器退出
ENTRYPOINT /usr/local/apache-tomcat-8.5.83/bin/startup.sh && tail -f /usr/local/apache-tomcat-8.5.83/logs/catalina.out

3、构建镜像

采用docker build 指令构建jdk_tomcat:8指定的版本:

[root@localhost tomcat]# sudo docker build -t jdk_tomcat:8 .
Sending build context to Docker daemon  204.7MB
Step 1/13 : FROM ubuntu
 ---> ba6acccedd29
Step 2/13 : MAINTAINER jdk_comcat:8
 ---> Running in b5c84e47128f
Removing intermediate container b5c84e47128f
 ---> 72de2dce1ee2
Step 3/13 : ADD jdk-8u202-linux-x64.tar.gz /usr/local
 ---> 021c4fdb4c85
Step 4/13 : ADD apache-tomcat-8.5.83.tar.gz /usr/local
 ---> cdcc494eb5dc
Step 5/13 : ENV JAVA_HOME /usr/local/jdk1.8.0_202
 ---> Running in 2e951823402d
Removing intermediate container 2e951823402d
 ---> 85ac9b509ae3
Step 6/13 : ENV PATH $JAVA_HOME/bin:$PATH
 ---> Running in 7cf34f21e792
Removing intermediate container 7cf34f21e792
 ---> f22b2517ccf8
Step 7/13 : ENV CLASSPATH .:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
 ---> Running in ecff0f632b98
Removing intermediate container ecff0f632b98
 ---> 27cf9956e0b1
Step 8/13 : ENV LANG C.UTF-8
 ---> Running in 5d06830ff12a
Removing intermediate container 5d06830ff12a
 ---> e512ebf2fa3b
Step 9/13 : ENV CATALINA_HOME /usr/local/apache-tomcat-8.5.83
 ---> Running in fe6a94685e33
Removing intermediate container fe6a94685e33
 ---> 2d7ac9eba680
Step 10/13 : ENV CATALINA_BASE /usr/local/apache-tomcat-8.5.83
 ---> Running in f55ec425465a
Removing intermediate container f55ec425465a
 ---> e7333a163afb
Step 11/13 : ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
 ---> Running in 84debe4a844f
Removing intermediate container 84debe4a844f
 ---> f72e6f752d2c
Step 12/13 : EXPOSE 8080
 ---> Running in 2e9d09b5830c
Removing intermediate container 2e9d09b5830c
 ---> c9d2b65d292f
Step 13/13 : ENTRYPOINT /usr/local/apache-tomcat-8.5.83/bin/startup.sh && tail -f /usr/local/apache-tomcat-8.5.83/logs/catalina.out
 ---> Running in ad6353686b35
Removing intermediate container ad6353686b35
 ---> fa0bafc06889
Successfully built fa0bafc06889
Successfully tagged jdk_tomcat:8

4、启动当前镜像

通过docker run 启动jdk_tomcat:8 当前镜像

sudo docker run -itd -p 8080:8080  --name jdk_tomcat jdk_tomcat:8

启动成功后,通过 docker images 查看镜像。
通过docker ps查看容器:

[root@localhost tomcat]# docker ps
CONTAINER ID   IMAGE              COMMAND                  CREATED         STATUS                    PORTS                                                                                                                               NAMES
1faae7d0ce90   jdk_tomcat:8       "/bin/sh -c '/usr/lo…"   4 seconds ago   Up 3 seconds              0.0.0.0:8080->8080/tcp, :::8080->8080/tcp                                                                                           jdk_tomcat
8e97133ab2de   gitlab/gitlab-ce   "/assets/wrapper"        30 hours ago    Up 29 minutes (healthy)   80/tcp, 0.0.0.0:8090->8090/tcp, :::8090->8090/tcp, 0.0.0.0:8022->22/tcp, :::8022->22/tcp, 0.0.0.0:8443->443/tcp, :::8443->443/tcp   gitlab

5、准备阿里云账号

5.1、创建镜像仓库:

Docker:制作镜像上传阿里云_第1张图片

5.2、选择本地仓库创建镜像库

Docker:制作镜像上传阿里云_第2张图片

5.3、在客户端登陆阿里云

通过docker login 登陆

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

输入自己的密码:

问题:Error response from daemon: Get “https://registry.cn-hangzhou.aliyuncs.com/v2/”: unauthorized: authentication required
解决方法:
1、不要使用第三方授权登陆,自己注册一个阿里云账号
2、修改DNS存值。

[root@localhost tomcat]# vi /etc/resolv.conf 
# Generated by NetworkManager
search localdomain
nameserver 192.168.220.2

保证DNS 存在值

5.4 添加标签和推送

通过docker images 获取镜像ID,然后通过阿里给的指令推送:

$ docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/lskdxhl/jdk_comcat:[镜像版本号]
$ docker push registry.cn-hangzhou.aliyuncs.com/lskdxhl/jdk_comcat:[镜像版本号]
[root@localhost tomcat]# docker tag fa0bafc06889  registry.cn-hangzhou.aliyuncs.com/lskdxhl/jdk_comcat:8
[root@localhost tomcat]# docker push  registry.cn-hangzhou.aliyuncs.com/lskdxhl/jdk_comcat:8
The push refers to repository [registry.cn-hangzhou.aliyuncs.com/lskdxhl/jdk_comcat]
032714f94ad3: Pushed 
4e3b53d854a6: Pushed 
9f54eef41275: Pushed 
8: digest: sha256:68b03cdf1d81b57489b7bf6de2761d7c0cce826e85c31a93fe11a029b3a21eb5 size: 954

5.5 查看和拉取

查看阿里云镜像仓库:
Docker:制作镜像上传阿里云_第3张图片

拉取上传的镜像:

 sudo docker pull registry.cn-hangzhou.aliyuncs.com/lskdxhl/jdk_comcat:8

6、制作JDK 镜像

同理制作JDK镜像,添加jar包,测试jdk镜像是否成功:

docker run -d --name eureka-9001  --privileged=true   --network host --restart always -w /usr/eureka/  -v /data/eureka:/usr/eureka  registry.cn-hangzhou.aliyuncs.com/lskdxhl/jdk_li:8 /bin/sh -c 'sh start.sh'

成功启动Eureka:
Docker:制作镜像上传阿里云_第4张图片

你可能感兴趣的:(Docker,docker,阿里云,linux)