dockerfile介绍
Dockerfile 是用来构建docker镜像的脚本文件
构建步骤
- 创建dockerfile文件
- docker build构建成为一个镜像
- docker run 运行镜像
- docker push 发布镜像
镜像对应的版本标签,点击进去都有dockerfile构建镜像脚本文件
Dockerfile构建过程
基础知识:
- 每个保留关键字(指令)都必须是大写字母
- 命令的执行是自上而下,按照顺序执行的
- “#” 表示注释
- 每一个指令都会创建一个镜像层,并提交
Dockerfile是面向开发的,需要开发人员编写脚本文件,作镜像,然后发布
Docker镜像逐渐成为企业的交付标准,必须掌握
步骤:开发,部署,运维,缺一不可
Dockerfile:构建的脚本文件,定义了整个构建的步骤和所需要的应用
DockerImage:通过dockerfile构建生成的镜像,
DockerContainer:容器就是镜像运行起来提供服务的
Dockerfile指令
FROM # Dockerfile除了注释第一行必须是FROM,FROM后面跟镜像名称,代表我们要基于那个基础镜像来构建我们的容器
MAINTAINER # 镜像作者 姓名+邮箱
RUN # RUN后面跟一个具体命令
ADD # 拷贝本机文件或者远程文件到镜像内,会自动解压
WORKDIR # 工作目录
VOLUME # 挂载的目录
EXPOSE # 指定容器监听的端口,格式为[port]/tcp或者[udp]/udp
CMD # 指定容器运行时需要运行的命令,只有最后一个生效,可被替代
ENTRYPOINT # 指定容器运行时需要运行的命令,可以追加命令
ONBUILD #
COPY # 将本机文件Copy到镜像中
ENV # 构建时,设置环境变量
实战测试
基础镜像:scratch,Docker hub中几乎所有的镜像都是从这个基础镜像,然后所需要的应用和配置来进行构建的
测试官方镜像centos,发现好多基础命令不支持
[root@izuf6akcgealirj602cmxsz ~]# docker pull centos
Using default tag: latest
latest: Pulling from library/centos
a1d0c7532777: Pull complete
Digest: sha256:a27fd8080b517143cbbbab9dfb7c8571c40d67d534bbdee55bd6c473f432b177
Status: Downloaded newer image for centos:latest
docker.io/library/centos:latest
[root@izuf6akcgealirj602cmxsz ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql latest 3218b38490ce 7 weeks ago 516MB
centos latest 5d0da3dc9764 5 months ago 231MB
[root@izuf6akcgealirj602cmxsz ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e0039750e206 mysql "docker-entrypoint.s…" 3 hours ago Exited (1) 2 hours ago slave-mysql
3ced17650858 mysql "docker-entrypoint.s…" 3 hours ago Up 3 hours 33060/tcp, 0.0.0.0:3310->3306/tcp master-mysql
[root@izuf6akcgealirj602cmxsz ~]# docker run -it centos /bin/bash
[root@1655ad8705b2 /]# ls
bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var
[root@1655ad8705b2 /]# ll
bash: ll: command not found
[root@1655ad8705b2 /]# clear
bash: clear: command not found
[root@1655ad8705b2 /]# ifconfog
bash: ifconfog: command not found
[root@1655ad8705b2 /]# ifconfig
bash: ifconfig: command not found
[root@1655ad8705b2 /]# vim
bash: vim: command not found
[root@1655ad8705b2 /]#
创建自己的CentOS,增加vim,net-tools
[root@izuf6akcgealirj602cmxsz dockerfile]# vim dockerfile
[root@izuf6akcgealirj602cmxsz dockerfile]# cat dockerfile
# 来自那个基础镜像
FROM centos:7
# 作者
MAINTAINER jgenius<496875938@qq.com>
# 执行命令
RUN yum update -y
RUN yum -y install vim
RUN yum -y install net-tools
# 设置环境变量
ENV MYPATH /usr/local
# 容器监听端口
EXPOSE 80
# 工作目录
WORKDIR $MYPATH
CMD echo "构建结束"
CMD /bin/bash
# 构建自己的镜像
[root@izuf6akcgealirj602cmxsz dockerfile]# docker build -f dockerfile -t mycentos .
Sending build context to Docker daemon 2.048kB
Step 1/10 : FROM centos:7
7: Pulling from library/centos
2d473b07cdd5: Pull complete
......
Installed:
net-tools.x86_64 0:2.0-0.25.20131004git.el7
Complete!
Removing intermediate container 146583947b92
---> e895df1a89a1
Step 6/10 : ENV MYPATH /usr/local
---> Running in da8715510b81
Removing intermediate container da8715510b81
---> f4e715bf7e3e
Step 7/10 : EXPOSE 80
---> Running in 0a082b75e52c
Removing intermediate container 0a082b75e52c
---> 3f1791a85425
Step 8/10 : WORKDIR $MYPATH
---> Running in 07fee72e35b8
Removing intermediate container 07fee72e35b8
---> 2975e4cbfdcc
Step 9/10 : CMD echo "构建结束"
---> Running in e6faaf350851
Removing intermediate container e6faaf350851
---> 8e84d89876fb
Step 10/10 : CMD /bin/bash
---> Running in 5601875bf4b2
Removing intermediate container 5601875bf4b2
---> ce7606870899
Successfully built ce7606870899
Successfully tagged mycentos:latest
# 查看自己构建的镜像
[root@izuf6akcgealirj602cmxsz ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mycentos latest ce7606870899 11 minutes ago 860MB
centos 7 eeb6ee3f44bd 5 months ago 204MB
测试运行自己构建的centos
[root@izuf6akcgealirj602cmxsz dockerfile]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mycentos latest ce7606870899 25 minutes ago 860MB
centos 7 eeb6ee3f44bd 5 months ago 204MB
[root@izuf6akcgealirj602cmxsz dockerfile]# docker run -it mycentos /bin/bash
[root@b1b8dca83a94 local]# pwd
/usr/local # 设置了工作目录,直接进入工作目录了
[root@b1b8dca83a94 local]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.17.0.2 netmask 255.255.0.0 broadcast 172.17.255.255
ether 02:42:ac:11:00:02 txqueuelen 0 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
loop txqueuelen 1000 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
发现自己构建的centos,有了部分基础的命令了
查看镜像构建过程日志
[root@izuf6akcgealirj602cmxsz dockerfile]# docker history mycentos
IMAGE CREATED CREATED BY SIZE COMMENT
ce7606870899 31 minutes ago /bin/sh -c #(nop) CMD ["/bin/sh" "-c" "/bin… 0B
8e84d89876fb 31 minutes ago /bin/sh -c #(nop) CMD ["/bin/sh" "-c" "echo… 0B
2975e4cbfdcc 31 minutes ago /bin/sh -c #(nop) WORKDIR /usr/local 0B
3f1791a85425 31 minutes ago /bin/sh -c #(nop) EXPOSE 80 0B
f4e715bf7e3e 31 minutes ago /bin/sh -c #(nop) ENV MYPATH=/usr/local 0B
e895df1a89a1 31 minutes ago /bin/sh -c yum -y install net-tools 156MB
d4e8564a7004 31 minutes ago /bin/sh -c yum -y install vim 210MB
370bc58dd806 31 minutes ago /bin/sh -c yum update -y 290MB
c5561827c0a8 34 minutes ago /bin/sh -c #(nop) MAINTAINER jgenius<496875… 0B
eeb6ee3f44bd 5 months ago /bin/sh -c #(nop) CMD ["/bin/bash"] 0B
<missing> 5 months ago /bin/sh -c #(nop) LABEL org.label-schema.sc… 0B
<missing> 5 months ago /bin/sh -c #(nop) ADD file:b3ebbe8bd304723d4… 204MB
CMD 和 ENTRYPOINT 的区别
CMD # 指定容器运行时需要运行的命令,只有最后一个生效,可被替代
ENTRYPOINT # 指定容器运行时需要运行的命令,可以追加命令
测试CMD
# 编写构建CMD镜像脚本
[root@izuf6akcgealirj602cmxsz dockerfile]# vim dockerfile-cmd
[root@izuf6akcgealirj602cmxsz dockerfile]# cat dockerfile-cmd
FROM centos
CMD ["ls","-l"]
# 构建CMD镜像
[root@izuf6akcgealirj602cmxsz dockerfile]# docker build -f dockerfile-cmd -t cmd_test .
Sending build context to Docker daemon 3.072kB
Step 1/2 : FROM centos:7
---> eeb6ee3f44bd
Step 2/2 : CMD ["ls","-l"]
---> Running in 1cc5d0601f6f
Removing intermediate container 1cc5d0601f6f
---> e005683c7fdd
Successfully built e005683c7fdd
Successfully tagged cmd_test:latest
# 运行镜像,发现 ls -a 命令生效了
[root@izuf6akcgealirj602cmxsz dockerfile]# docker run cmd_test
.
..
.dockerenv
anaconda-post.log
bin
dev
etc
home
lib
lib64
media
mnt
opt
proc
root
run
sbin
srv
sys
tmp
usr
var
# 追加命令运行容器,发现在CMD情况下 追加 -l 命令,替换了CMD["ls","-a"], -l 不是一个命令,导致报错了
[root@izuf6akcgealirj602cmxsz dockerfile]# docker run cmd_test -l
docker: Error response from daemon: OCI runtime create failed: container_linux.go:380: starting container process caused: exec: "-l": executable file not found in $PATH: unknown.
ERRO[0000] error waiting for container: context canceled
#CMD情况下,追加命令需要 追加完整命令
[root@izuf6akcgealirj602cmxsz dockerfile]# docker run cmd_test ls -al
total 64
drwxr-xr-x 1 root root 4096 Feb 15 06:41 .
drwxr-xr-x 1 root root 4096 Feb 15 06:41 ..
-rwxr-xr-x 1 root root 0 Feb 15 06:41 .dockerenv
-rw-r--r-- 1 root root 12114 Nov 13 2020 anaconda-post.log
lrwxrwxrwx 1 root root 7 Nov 13 2020 bin -> usr/bin
drwxr-xr-x 5 root root 340 Feb 15 06:41 dev
drwxr-xr-x 1 root root 4096 Feb 15 06:41 etc
drwxr-xr-x 2 root root 4096 Apr 11 2018 home
lrwxrwxrwx 1 root root 7 Nov 13 2020 lib -> usr/lib
lrwxrwxrwx 1 root root 9 Nov 13 2020 lib64 -> usr/lib64
drwxr-xr-x 2 root root 4096 Apr 11 2018 media
drwxr-xr-x 2 root root 4096 Apr 11 2018 mnt
drwxr-xr-x 2 root root 4096 Apr 11 2018 opt
dr-xr-xr-x 118 root root 0 Feb 15 06:41 proc
dr-xr-x--- 2 root root 4096 Nov 13 2020 root
drwxr-xr-x 11 root root 4096 Nov 13 2020 run
lrwxrwxrwx 1 root root 8 Nov 13 2020 sbin -> usr/sbin
drwxr-xr-x 2 root root 4096 Apr 11 2018 srv
dr-xr-xr-x 13 root root 0 Jan 27 07:32 sys
drwxrwxrwt 7 root root 4096 Nov 13 2020 tmp
drwxr-xr-x 13 root root 4096 Nov 13 2020 usr
drwxr-xr-x 18 root root 4096 Nov 13 2020 var
测试ENTRYPOINT
# 编写构建ENTRYPOINT镜像脚本
[root@izuf6akcgealirj602cmxsz dockerfile]# vim dockerfile-entrypoint
[root@izuf6akcgealirj602cmxsz dockerfile]# cat dockerfile-entrypoint
FROM centos:7
ENTRYPOINT ["ls","-a"]
# 构建ENTRYPOINT镜像
[root@izuf6akcgealirj602cmxsz dockerfile]# docker build -f dockerfile-entrypoint -t entrypoint .
Sending build context to Docker daemon 4.096kB
Step 1/2 : FROM centos:7
---> eeb6ee3f44bd
Step 2/2 : ENTRYPOINT ["ls","-a"]
---> Running in 803df74bd9db
Removing intermediate container 803df74bd9db
---> e782e758f8f2
Successfully built e782e758f8f2
Successfully tagged entrypoint:latest
# 运行测试,在这一步发现和CMD没有任何区别
[root@izuf6akcgealirj602cmxsz dockerfile]# docker run entrypoint
.
..
.dockerenv
anaconda-post.log
bin
dev
etc
home
lib
lib64
media
mnt
opt
proc
root
run
sbin
srv
sys
tmp
usr
var
# 追加命令运行容器,发现是可以直接将所需的命令参数追加到ENTRYPOINT后面去执行的
[root@izuf6akcgealirj602cmxsz dockerfile]# docker run entrypoint -l
total 64
drwxr-xr-x 1 root root 4096 Feb 15 07:17 .
drwxr-xr-x 1 root root 4096 Feb 15 07:17 ..
-rwxr-xr-x 1 root root 0 Feb 15 07:17 .dockerenv
-rw-r--r-- 1 root root 12114 Nov 13 2020 anaconda-post.log
lrwxrwxrwx 1 root root 7 Nov 13 2020 bin -> usr/bin
drwxr-xr-x 5 root root 340 Feb 15 07:17 dev
drwxr-xr-x 1 root root 4096 Feb 15 07:17 etc
drwxr-xr-x 2 root root 4096 Apr 11 2018 home
lrwxrwxrwx 1 root root 7 Nov 13 2020 lib -> usr/lib
lrwxrwxrwx 1 root root 9 Nov 13 2020 lib64 -> usr/lib64
drwxr-xr-x 2 root root 4096 Apr 11 2018 media
drwxr-xr-x 2 root root 4096 Apr 11 2018 mnt
drwxr-xr-x 2 root root 4096 Apr 11 2018 opt
dr-xr-xr-x 119 root root 0 Feb 15 07:17 proc
dr-xr-x--- 2 root root 4096 Nov 13 2020 root
drwxr-xr-x 11 root root 4096 Nov 13 2020 run
lrwxrwxrwx 1 root root 8 Nov 13 2020 sbin -> usr/sbin
drwxr-xr-x 2 root root 4096 Apr 11 2018 srv
dr-xr-xr-x 13 root root 0 Jan 27 07:32 sys
drwxrwxrwt 7 root root 4096 Nov 13 2020 tmp
drwxr-xr-x 13 root root 4096 Nov 13 2020 usr
drwxr-xr-x 18 root root 4096 Nov 13 2020 var
实战测试:Tomcat
# 编写Dockerfile脚本文件
[root@izuf6akcgealirj602cmxsz tomcat]# vim Dockerfile
FROM centos:7
MAINTAINER jgenius<496875938@qq.com>
COPY readme.txt /usr/local/readme.txt
ADD apache-tomcat-8.5.75.tar.gz /usr/local/
ADD jdk-8u201-linux-x64.tar.gz /usr/local/
RUN yum -y install vim
ENV MYPATH /usr/local
WORKDIR $MYPATH
ENV JAVA_HOME /usr/local/jdk1.8.0_201
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-8.5.75
ENV CATALINA_BASE /usr/local/apache-tomcat-8.5.75
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
EXPOSE 8080
CMD /usr/local/apache-tomcat-8.5.75/bin/startup.sh && tail -F /usr/local/apache-tomcat-8.5.75/logs/catalina.out
# 构建镜像
[root@izuf6akcgealirj602cmxsz tomcat]# docker build -t diytomcat .
Sending build context to Docker daemon 615.7MB
Step 1/15 : FROM centos:7
---> eeb6ee3f44bd
Step 2/15 : MAINTAINER jgenius<496875938@qq.com>
---> Running in f8c87af57f47
Removing intermediate container f8c87af57f47
---> 9b6220d814bd
Step 3/15 : COPY readme.txt /usr/local/readme.txt
---> ea4155756376
Step 4/15 : ADD apache-tomcat-8.5.75.tar.gz /usr/local/
---> 7e9814d367e4
Step 5/15 : ADD jdk-8u201-linux-x64.tar.gz /usr/local/
---> a3120ec31fa2
Step 6/15 : RUN yum -y install vim
---> Running in b58505c881f6
Loaded plugins: fastestmirror, ovl
Determining fastest mirrors
* base: ftp.sjtu.edu.cn
* extras: ftp.sjtu.edu.cn
* updates: ftp.sjtu.edu.cn
Resolving Dependencies
--> Running transaction check
---> Package vim-enhanced.x86_64 2:7.4.629-8.el7_9 will be installed
--> Processing Dependency: vim-common = 2:7.4.629-8.el7_9 for package: 2:vim-enhanced-7.4.629-8.el7_9.x86_64
--> Processing Dependency: which for package: 2:vim-enhanced-7.4.629-8.el7_9.x86_64
--> Processing Dependency: perl(:MODULE_COMPAT_5.16.3) for package: 2:vim-enhanced-7.4.629-8.el7_9.x86_64
--> Processing Dependency: libperl.so()(64bit) for package: 2:vim-enhanced-7.4.629-8.el7_9.x86_64
--> Processing Dependency: libgpm.so.2()(64bit) for package: 2:vim-enhanced-7.4.629-8.el7_9.x86_64
--> Running transaction check
---> Package gpm-libs.x86_64 0:1.20.7-6.el7 will be installed
---> Package perl.x86_64 4:5.16.3-299.el7_9 will be installed
--> Processing Dependency: perl(Socket) >= 1.3 for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(Scalar::Util) >= 1.10 for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl-macros for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(threads::shared) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(threads) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(constant) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(Time::Local) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(Time::HiRes) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(Storable) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(Socket) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(Scalar::Util) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(Pod::Simple::XHTML) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(Pod::Simple::Search) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(Getopt::Long) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(Filter::Util::Call) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(File::Temp) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(File::Spec::Unix) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(File::Spec::Functions) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(File::Spec) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(File::Path) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(Exporter) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(Cwd) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(Carp) for package: 4:perl-5.16.3-299.el7_9.x86_64
---> Package perl-libs.x86_64 4:5.16.3-299.el7_9 will be installed
---> Package vim-common.x86_64 2:7.4.629-8.el7_9 will be installed
--> Processing Dependency: vim-filesystem for package: 2:vim-common-7.4.629-8.el7_9.x86_64
---> Package which.x86_64 0:2.20-7.el7 will be installed
--> Running transaction check
---> Package perl-Carp.noarch 0:1.26-244.el7 will be installed
---> Package perl-Exporter.noarch 0:5.68-3.el7 will be installed
---> Package perl-File-Path.noarch 0:2.09-2.el7 will be installed
---> Package perl-File-Temp.noarch 0:0.23.01-3.el7 will be installed
---> Package perl-Filter.x86_64 0:1.49-3.el7 will be installed
---> Package perl-Getopt-Long.noarch 0:2.40-3.el7 will be installed
--> Processing Dependency: perl(Pod::Usage) >= 1.14 for package: perl-Getopt-Long-2.40-3.el7.noarch
--> Processing Dependency: perl(Text::ParseWords) for package: perl-Getopt-Long-2.40-3.el7.noarch
---> Package perl-PathTools.x86_64 0:3.40-5.el7 will be installed
---> Package perl-Pod-Simple.noarch 1:3.28-4.el7 will be installed
--> Processing Dependency: perl(Pod::Escapes) >= 1.04 for package: 1:perl-Pod-Simple-3.28-4.el7.noarch
--> Processing Dependency: perl(Encode) for package: 1:perl-Pod-Simple-3.28-4.el7.noarch
---> Package perl-Scalar-List-Utils.x86_64 0:1.27-248.el7 will be installed
---> Package perl-Socket.x86_64 0:2.010-5.el7 will be installed
---> Package perl-Storable.x86_64 0:2.45-3.el7 will be installed
---> Package perl-Time-HiRes.x86_64 4:1.9725-3.el7 will be installed
---> Package perl-Time-Local.noarch 0:1.2300-2.el7 will be installed
---> Package perl-constant.noarch 0:1.27-2.el7 will be installed
---> Package perl-macros.x86_64 4:5.16.3-299.el7_9 will be installed
---> Package perl-threads.x86_64 0:1.87-4.el7 will be installed
---> Package perl-threads-shared.x86_64 0:1.43-6.el7 will be installed
---> Package vim-filesystem.x86_64 2:7.4.629-8.el7_9 will be installed
--> Running transaction check
---> Package perl-Encode.x86_64 0:2.51-7.el7 will be installed
---> Package perl-Pod-Escapes.noarch 1:1.04-299.el7_9 will be installed
---> Package perl-Pod-Usage.noarch 0:1.63-3.el7 will be installed
--> Processing Dependency: perl(Pod::Text) >= 3.15 for package: perl-Pod-Usage-1.63-3.el7.noarch
--> Processing Dependency: perl-Pod-Perldoc for package: perl-Pod-Usage-1.63-3.el7.noarch
---> Package perl-Text-ParseWords.noarch 0:3.29-4.el7 will be installed
--> Running transaction check
---> Package perl-Pod-Perldoc.noarch 0:3.20-4.el7 will be installed
--> Processing Dependency: perl(parent) for package: perl-Pod-Perldoc-3.20-4.el7.noarch
--> Processing Dependency: perl(HTTP::Tiny) for package: perl-Pod-Perldoc-3.20-4.el7.noarch
--> Processing Dependency: groff-base for package: perl-Pod-Perldoc-3.20-4.el7.noarch
---> Package perl-podlators.noarch 0:2.5.1-3.el7 will be installed
--> Running transaction check
---> Package groff-base.x86_64 0:1.22.2-8.el7 will be installed
---> Package perl-HTTP-Tiny.noarch 0:0.033-3.el7 will be installed
---> Package perl-parent.noarch 1:0.225-244.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
vim-enhanced x86_64 2:7.4.629-8.el7_9 updates 1.1 M
Installing for dependencies:
gpm-libs x86_64 1.20.7-6.el7 base 32 k
groff-base x86_64 1.22.2-8.el7 base 942 k
perl x86_64 4:5.16.3-299.el7_9 updates 8.0 M
perl-Carp noarch 1.26-244.el7 base 19 k
perl-Encode x86_64 2.51-7.el7 base 1.5 M
perl-Exporter noarch 5.68-3.el7 base 28 k
perl-File-Path noarch 2.09-2.el7 base 26 k
perl-File-Temp noarch 0.23.01-3.el7 base 56 k
perl-Filter x86_64 1.49-3.el7 base 76 k
perl-Getopt-Long noarch 2.40-3.el7 base 56 k
perl-HTTP-Tiny noarch 0.033-3.el7 base 38 k
perl-PathTools x86_64 3.40-5.el7 base 82 k
perl-Pod-Escapes noarch 1:1.04-299.el7_9 updates 52 k
perl-Pod-Perldoc noarch 3.20-4.el7 base 87 k
perl-Pod-Simple noarch 1:3.28-4.el7 base 216 k
perl-Pod-Usage noarch 1.63-3.el7 base 27 k
perl-Scalar-List-Utils x86_64 1.27-248.el7 base 36 k
perl-Socket x86_64 2.010-5.el7 base 49 k
perl-Storable x86_64 2.45-3.el7 base 77 k
perl-Text-ParseWords noarch 3.29-4.el7 base 14 k
perl-Time-HiRes x86_64 4:1.9725-3.el7 base 45 k
perl-Time-Local noarch 1.2300-2.el7 base 24 k
perl-constant noarch 1.27-2.el7 base 19 k
perl-libs x86_64 4:5.16.3-299.el7_9 updates 690 k
perl-macros x86_64 4:5.16.3-299.el7_9 updates 44 k
perl-parent noarch 1:0.225-244.el7 base 12 k
perl-podlators noarch 2.5.1-3.el7 base 112 k
perl-threads x86_64 1.87-4.el7 base 49 k
perl-threads-shared x86_64 1.43-6.el7 base 39 k
vim-common x86_64 2:7.4.629-8.el7_9 updates 5.9 M
vim-filesystem x86_64 2:7.4.629-8.el7_9 updates 11 k
which x86_64 2.20-7.el7 base 41 k
Transaction Summary
================================================================================
Install 1 Package (+32 Dependent packages)
Total download size: 19 M
Installed size: 63 M
Downloading packages:
warning: /var/cache/yum/x86_64/7/base/packages/gpm-libs-1.20.7-6.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
Public key for gpm-libs-1.20.7-6.el7.x86_64.rpm is not installed
Public key for perl-5.16.3-299.el7_9.x86_64.rpm is not installed
--------------------------------------------------------------------------------
Total 26 MB/s | 19 MB 00:00
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
Importing GPG key 0xF4A80EB5:
Userid : "CentOS-7 Key (CentOS 7 Official Signing Key) <security@centos.org>"
Fingerprint: 6341 ab27 53d7 8a78 a7c2 7bb1 24c6 a8a7 f4a8 0eb5
Package : centos-release-7-9.2009.0.el7.centos.x86_64 (@CentOS)
From : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : gpm-libs-1.20.7-6.el7.x86_64 1/33
Installing : 2:vim-filesystem-7.4.629-8.el7_9.x86_64 2/33
Installing : 2:vim-common-7.4.629-8.el7_9.x86_64 3/33
Installing : which-2.20-7.el7.x86_64 4/33
install-info: No such file or directory for /usr/share/info/which.info.gz
Installing : groff-base-1.22.2-8.el7.x86_64 5/33
Installing : 1:perl-parent-0.225-244.el7.noarch 6/33
Installing : perl-HTTP-Tiny-0.033-3.el7.noarch 7/33
Installing : perl-podlators-2.5.1-3.el7.noarch 8/33
Installing : perl-Pod-Perldoc-3.20-4.el7.noarch 9/33
Installing : 1:perl-Pod-Escapes-1.04-299.el7_9.noarch 10/33
Installing : perl-Encode-2.51-7.el7.x86_64 11/33
Installing : perl-Text-ParseWords-3.29-4.el7.noarch 12/33
Installing : perl-Pod-Usage-1.63-3.el7.noarch 13/33
Installing : 4:perl-macros-5.16.3-299.el7_9.x86_64 14/33
Installing : perl-Storable-2.45-3.el7.x86_64 15/33
Installing : perl-Exporter-5.68-3.el7.noarch 16/33
Installing : perl-constant-1.27-2.el7.noarch 17/33
Installing : perl-Socket-2.010-5.el7.x86_64 18/33
Installing : perl-Time-Local-1.2300-2.el7.noarch 19/33
Installing : perl-Carp-1.26-244.el7.noarch 20/33
Installing : perl-PathTools-3.40-5.el7.x86_64 21/33
Installing : perl-Scalar-List-Utils-1.27-248.el7.x86_64 22/33
Installing : 1:perl-Pod-Simple-3.28-4.el7.noarch 23/33
Installing : perl-File-Temp-0.23.01-3.el7.noarch 24/33
Installing : perl-File-Path-2.09-2.el7.noarch 25/33
Installing : perl-threads-shared-1.43-6.el7.x86_64 26/33
Installing : perl-threads-1.87-4.el7.x86_64 27/33
Installing : 4:perl-Time-HiRes-1.9725-3.el7.x86_64 28/33
Installing : perl-Filter-1.49-3.el7.x86_64 29/33
Installing : 4:perl-libs-5.16.3-299.el7_9.x86_64 30/33
Installing : perl-Getopt-Long-2.40-3.el7.noarch 31/33
Installing : 4:perl-5.16.3-299.el7_9.x86_64 32/33
Installing : 2:vim-enhanced-7.4.629-8.el7_9.x86_64 33/33
Verifying : perl-HTTP-Tiny-0.033-3.el7.noarch 1/33
Verifying : perl-threads-shared-1.43-6.el7.x86_64 2/33
Verifying : perl-Storable-2.45-3.el7.x86_64 3/33
Verifying : groff-base-1.22.2-8.el7.x86_64 4/33
Verifying : perl-Exporter-5.68-3.el7.noarch 5/33
Verifying : perl-constant-1.27-2.el7.noarch 6/33
Verifying : perl-PathTools-3.40-5.el7.x86_64 7/33
Verifying : 4:perl-macros-5.16.3-299.el7_9.x86_64 8/33
Verifying : 2:vim-enhanced-7.4.629-8.el7_9.x86_64 9/33
Verifying : 1:perl-parent-0.225-244.el7.noarch 10/33
Verifying : perl-Socket-2.010-5.el7.x86_64 11/33
Verifying : which-2.20-7.el7.x86_64 12/33
Verifying : 2:vim-filesystem-7.4.629-8.el7_9.x86_64 13/33
Verifying : perl-File-Temp-0.23.01-3.el7.noarch 14/33
Verifying : 1:perl-Pod-Simple-3.28-4.el7.noarch 15/33
Verifying : perl-Time-Local-1.2300-2.el7.noarch 16/33
Verifying : 1:perl-Pod-Escapes-1.04-299.el7_9.noarch 17/33
Verifying : perl-Carp-1.26-244.el7.noarch 18/33
Verifying : 2:vim-common-7.4.629-8.el7_9.x86_64 19/33
Verifying : perl-Scalar-List-Utils-1.27-248.el7.x86_64 20/33
Verifying : perl-Pod-Usage-1.63-3.el7.noarch 21/33
Verifying : perl-Encode-2.51-7.el7.x86_64 22/33
Verifying : perl-Pod-Perldoc-3.20-4.el7.noarch 23/33
Verifying : perl-podlators-2.5.1-3.el7.noarch 24/33
Verifying : 4:perl-5.16.3-299.el7_9.x86_64 25/33
Verifying : perl-File-Path-2.09-2.el7.noarch 26/33
Verifying : perl-threads-1.87-4.el7.x86_64 27/33
Verifying : 4:perl-Time-HiRes-1.9725-3.el7.x86_64 28/33
Verifying : gpm-libs-1.20.7-6.el7.x86_64 29/33
Verifying : perl-Filter-1.49-3.el7.x86_64 30/33
Verifying : perl-Getopt-Long-2.40-3.el7.noarch 31/33
Verifying : perl-Text-ParseWords-3.29-4.el7.noarch 32/33
Verifying : 4:perl-libs-5.16.3-299.el7_9.x86_64 33/33
Installed:
vim-enhanced.x86_64 2:7.4.629-8.el7_9
Dependency Installed:
gpm-libs.x86_64 0:1.20.7-6.el7
groff-base.x86_64 0:1.22.2-8.el7
perl.x86_64 4:5.16.3-299.el7_9
perl-Carp.noarch 0:1.26-244.el7
perl-Encode.x86_64 0:2.51-7.el7
perl-Exporter.noarch 0:5.68-3.el7
perl-File-Path.noarch 0:2.09-2.el7
perl-File-Temp.noarch 0:0.23.01-3.el7
perl-Filter.x86_64 0:1.49-3.el7
perl-Getopt-Long.noarch 0:2.40-3.el7
perl-HTTP-Tiny.noarch 0:0.033-3.el7
perl-PathTools.x86_64 0:3.40-5.el7
perl-Pod-Escapes.noarch 1:1.04-299.el7_9
perl-Pod-Perldoc.noarch 0:3.20-4.el7
perl-Pod-Simple.noarch 1:3.28-4.el7
perl-Pod-Usage.noarch 0:1.63-3.el7
perl-Scalar-List-Utils.x86_64 0:1.27-248.el7
perl-Socket.x86_64 0:2.010-5.el7
perl-Storable.x86_64 0:2.45-3.el7
perl-Text-ParseWords.noarch 0:3.29-4.el7
perl-Time-HiRes.x86_64 4:1.9725-3.el7
perl-Time-Local.noarch 0:1.2300-2.el7
perl-constant.noarch 0:1.27-2.el7
perl-libs.x86_64 4:5.16.3-299.el7_9
perl-macros.x86_64 4:5.16.3-299.el7_9
perl-parent.noarch 1:0.225-244.el7
perl-podlators.noarch 0:2.5.1-3.el7
perl-threads.x86_64 0:1.87-4.el7
perl-threads-shared.x86_64 0:1.43-6.el7
vim-common.x86_64 2:7.4.629-8.el7_9
vim-filesystem.x86_64 2:7.4.629-8.el7_9
which.x86_64 0:2.20-7.el7
Complete!
Removing intermediate container b58505c881f6
---> f7c7a68bc8cb
Step 7/15 : ENV MYPATH /usr/local
---> Running in c80ff7a55bf5
Removing intermediate container c80ff7a55bf5
---> d29ae1bb4dfc
Step 8/15 : WORKDIR $MYPATH
---> Running in c686e90f4678
Removing intermediate container c686e90f4678
---> 1927e4494b78
Step 9/15 : ENV JAVA_HOME /usr/local/jdk1.8.0_201
---> Running in 1e6d577fd522
Removing intermediate container 1e6d577fd522
---> 9391d5cd2312
Step 10/15 : ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
---> Running in 156650aa4794
Removing intermediate container 156650aa4794
---> 18d697e1f150
Step 11/15 : ENV CATALINA_HOME /usr/local/apache-tomcat-8.5.75
---> Running in 103b82d9f517
Removing intermediate container 103b82d9f517
---> a2505e909792
Step 12/15 : ENV CATALINA_BASE /usr/local/apache-tomcat-8.5.75
---> Running in 1ff80bc569fa
Removing intermediate container 1ff80bc569fa
---> bd4e5a4685e3
Step 13/15 : ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
---> Running in 1a99a198675c
Removing intermediate container 1a99a198675c
---> 3cc9600d8f6b
Step 14/15 : EXPOSE 8080
---> Running in 0634171163a1
Removing intermediate container 0634171163a1
---> eefcb23a07b3
Step 15/15 : CMD /usr/local/apache-tomcat-8.5.75/bin/startup.sh && tail -F /usr/local/apache-tomcat-8.5.75/logs/catalina.out
---> Running in 5fcf919b6207
Removing intermediate container 5fcf919b6207
---> 866e2c50f3a3
Successfully built 866e2c50f3a3
Successfully tagged diytomcat:latest
# 运行镜像
[root@izuf6akcgealirj602cmxsz tomcat]# docker run -d -p 8899:8080 --name tomcat_test -v /home/jgenius/tomcat/test:/usr/local/apache-tomcat-8.5.75/webapps/test diytomcat
1ab375cdaa650fcef2c4757381bf3136c4ae488258c5f80772008a0177a83a1b
# 本地测试访问
curl localhost:8899
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Apache Tomcat/8.5.75</title>
<link href="favicon.ico" rel="icon" type="image/x-icon" />
<link href="tomcat.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="wrapper">
<div id="navigation" class="curved container">
<span id="nav-home"><a href="https://tomcat.apache.org/">Home</a></span>
<span id="nav-hosts"><a href="/docs/">Documentation</a></span>
<span id="nav-config"><a href="/docs/config/">Configuration</a></span>
<span id="nav-examples"><a href="/examples/">Examples</a></span>
<span id="nav-wiki"><a href="https://wiki.apache.org/tomcat/FrontPage">Wiki</a></span>
<span id="nav-lists"><a href="https://tomcat.apache.org/lists.html">Mailing Lists</a></span>
<span id="nav-help"><a href="https://tomcat.apache.org/findhelp.html">Find Help</a></span>
<br class="separator" />
</div>
<div id="asf-box">
<h1>Apache Tomcat/8.5.75</h1>
</div>
<div id="upper" class="curved container">
<div id="congrats" class="curved container">
<h2>If you're seeing this, you've successfully installed Tomcat. Congratulations!</h2>
</div>
<div id="notice">
<img id="tomcat-logo" src="tomcat.svg" alt="[tomcat logo]" />
<div id="tasks">
<h3>Recommended Reading:</h3>
<h4><a href="/docs/security-howto.html">Security Considerations How-To</a></h4>
<h4><a href="/docs/manager-howto.html">Manager Application How-To</a></h4>
<h4><a href="/docs/cluster-howto.html">Clustering/Session Replication How-To</a></h4>
</div>
</div>
<div id="actions">
<div class="button">
<a class="container shadow" href="/manager/status"><span>Server Status</span></a>
</div>
<div class="button">
<a class="container shadow" href="/manager/html"><span>Manager App</span></a>
</div>
<div class="button">
<a class="container shadow" href="/host-manager/html"><span>Host Manager</span></a>
</div>
</div>
<br class="separator" />
</div>
<div id="middle" class="curved container">
<h3>Developer Quick Start</h3>
<div class="col25">
<div class="container">
<p><a href="/docs/setup.html">Tomcat Setup</a></p>
<p><a href="/docs/appdev/">First Web Application</a></p>
</div>
</div>
<div class="col25">
<div class="container">
<p><a href="/docs/realm-howto.html">Realms & AAA</a></p>
<p><a href="/docs/jndi-datasource-examples-howto.html">JDBC DataSources</a></p>
</div>
</div>
<div class="col25">
<div class="container">
<p><a href="/examples/">Examples</a></p>
</div>
</div>
<div class="col25">
<div class="container">
<p><a href="https://wiki.apache.org/tomcat/Specifications">Servlet Specifications</a></p>
<p><a href="https://wiki.apache.org/tomcat/TomcatVersions">Tomcat Versions</a></p>
</div>
</div>
<br class="separator" />
</div>
<div id="lower">
<div id="low-manage" class="">
<div class="curved container">
<h3>Managing Tomcat</h3>
<p>For security, access to the <a href="/manager/html">manager webapp</a> is restricted.
Users are defined in:</p>
<pre>$CATALINA_HOME/conf/tomcat-users.xml</pre>
<p>In Tomcat 8.5 access to the manager application is split between
different users. <a href="/docs/manager-howto.html">Read more...</a></p>
<br />
<h4><a href="/docs/RELEASE-NOTES.txt">Release Notes</a></h4>
<h4><a href="/docs/changelog.html">Changelog</a></h4>
<h4><a href="https://tomcat.apache.org/migration.html">Migration Guide</a></h4>
<h4><a href="https://tomcat.apache.org/security.html">Security Notices</a></h4>
</div>
</div>
<div id="low-docs" class="">
<div class="curved container">
<h3>Documentation</h3>
<h4><a href="/docs/">Tomcat 8.5 Documentation</a></h4>
<h4><a href="/docs/config/">Tomcat 8.5 Configuration</a></h4>
<h4><a href="https://wiki.apache.org/tomcat/FrontPage">Tomcat Wiki</a></h4>
<p>Find additional important configuration information in:</p>
<pre>$CATALINA_HOME/RUNNING.txt</pre>
<p>Developers may be interested in:</p>
<ul>
<li><a href="https://tomcat.apache.org/bugreport.html">Tomcat 8.5 Bug Database</a></li>
<li><a href="/docs/api/index.html">Tomcat 8.5 JavaDocs</a></li>
<li><a href="https://github.com/apache/tomcat/tree/8.5.x">Tomcat 8.5 Git Repository at GitHub</a></li>
</ul>
</div>
</div>
<div id="low-help" class="">
<div class="curved container">
<h3>Getting Help</h3>
<h4><a href="https://tomcat.apache.org/faq/">FAQ</a> and <a href="https://tomcat.apache.org/lists.html">Mailing Lists</a></h4>
<p>The following mailing lists are available:</p>
<ul>
<li id="list-announce"><strong><a href="https://tomcat.apache.org/lists.html#tomcat-announce">tomcat-announce</a><br />
Important announcements, releases, security vulnerability notifications. (Low volume).</strong>
</li>
<li><a href="https://tomcat.apache.org/lists.html#tomcat-users">tomcat-users</a><br />
User support and discussion
</li>
<li><a href="https://tomcat.apache.org/lists.html#taglibs-user">taglibs-user</a><br />
User support and discussion for <a href="https://tomcat.apache.org/taglibs/">Apache Taglibs</a>
</li>
<li><a href="https://tomcat.apache.org/lists.html#tomcat-dev">tomcat-dev</a><br />
Development mailing list, including commit messages
</li>
</ul>
</div>
</div>
<br class="separator" />
</div>
<div id="footer" class="curved container">
<div class="col20">
<div class="container">
<h4>Other Downloads</h4>
<ul>
<li><a href="https://tomcat.apache.org/download-connectors.cgi">Tomcat Connectors</a></li>
<li><a href="https://tomcat.apache.org/download-native.cgi">Tomcat Native</a></li>
<li><a href="https://tomcat.apache.org/taglibs/">Taglibs</a></li>
<li><a href="/docs/deployer-howto.html">Deployer</a></li>
</ul>
</div>
</div>
<div class="col20">
<div class="container">
<h4>Other Documentation</h4>
<ul>
<li><a href="https://tomcat.apache.org/connectors-doc/">Tomcat Connectors</a></li>
<li><a href="https://tomcat.apache.org/connectors-doc/">mod_jk Documentation</a></li>
<li><a href="https://tomcat.apache.org/native-doc/">Tomcat Native</a></li>
<li><a href="/docs/deployer-howto.html">Deployer</a></li>
</ul>
</div>
</div>
<div class="col20">
<div class="container">
<h4>Get Involved</h4>
<ul>
<li><a href="https://tomcat.apache.org/getinvolved.html">Overview</a></li>
<li><a href="https://tomcat.apache.org/source.html">Source Repositories</a></li>
<li><a href="https://tomcat.apache.org/lists.html">Mailing Lists</a></li>
<li><a href="https://wiki.apache.org/tomcat/FrontPage">Wiki</a></li>
</ul>
</div>
</div>
<div class="col20">
<div class="container">
<h4>Miscellaneous</h4>
<ul>
<li><a href="https://tomcat.apache.org/contact.html">Contact</a></li>
<li><a href="https://tomcat.apache.org/legal.html">Legal</a></li>
<li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
<li><a href="https://www.apache.org/foundation/thanks.html">Thanks</a></li>
</ul>
</div>
</div>
<div class="col20">
<div class="container">
<h4>Apache Software Foundation</h4>
<ul>
<li><a href="https://tomcat.apache.org/whoweare.html">Who We Are</a></li>
<li><a href="https://tomcat.apache.org/heritage.html">Heritage</a></li>
<li><a href="https://www.apache.org">Apache Home</a></li>
<li><a href="https://tomcat.apache.org/resources.html">Resources</a></li>
</ul>
</div>
</div>
<br class="separator" />
</div>
<p class="copyright">Copyright ©1999-2022 Apache Software Foundation. All Rights Reserved</p>
</div>
</body>
</html>
# 测试项目部署
# 进入容器查看容器内应用文件,目前test下没有任何文件
[root@izuf6akcgealirj602cmxsz tomcat]# docker exec -it 1ab375cdaa65 /bin/bash
[root@1ab375cdaa65 local]# cd apache-tomcat-8.5.75/
[root@1ab375cdaa65 apache-tomcat-8.5.75]# cd webapps/
[root@1ab375cdaa65 webapps]# ll
total 24
drwxr-x--- 3 root root 4096 Jan 17 22:07 ROOT
drwxr-x--- 15 root root 4096 Jan 17 22:07 docs
drwxr-x--- 7 root root 4096 Jan 17 22:07 examples
drwxr-x--- 6 root root 4096 Jan 17 22:07 host-manager
drwxr-x--- 6 root root 4096 Jan 17 22:07 manager
drwxr-xr-x 2 root root 4096 Feb 16 03:19 test
[root@1ab375cdaa65 webapps]# cd test/
[root@1ab375cdaa65 test]# ll
total 0
# 在宿主机上创建jsp文件,查看是否挂在成功
# 宿主机创建文件
[root@izuf6akcgealirj602cmxsz tomcat]# cd test/
[root@izuf6akcgealirj602cmxsz test]# ll
total 0
[root@izuf6akcgealirj602cmxsz test]# touch index.jsp
[root@izuf6akcgealirj602cmxsz test]# vim index.jsp
[root@izuf6akcgealirj602cmxsz test]# cat index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>测试自定义tomcat</title>
</head>
<body>
Hello World!<br/>
<%
out.println("测试自定义tomcat,制作是否成功并查看挂在再宿主机上的目录是否和容器互通");
%>
</body>
</html>
# 查看容器内文件是否同步
[root@izuf6akcgealirj602cmxsz tomcat]# docker exec -it 1ab375cdaa65 /bin/bash
[root@1ab375cdaa65 local]# cd apache-tomcat-8.5.75/
[root@1ab375cdaa65 apache-tomcat-8.5.75]# cd webapps/
[root@1ab375cdaa65 webapps]# ll
total 24
drwxr-x--- 3 root root 4096 Jan 17 22:07 ROOT
drwxr-x--- 15 root root 4096 Jan 17 22:07 docs
drwxr-x--- 7 root root 4096 Jan 17 22:07 examples
drwxr-x--- 6 root root 4096 Jan 17 22:07 host-manager
drwxr-x--- 6 root root 4096 Jan 17 22:07 manager
drwxr-xr-x 2 root root 4096 Feb 16 03:19 test
[root@1ab375cdaa65 webapps]# cd test/
[root@1ab375cdaa65 test]# ll
total 0
[root@1ab375cdaa65 test]# ll
total 4
-rw-r--r-- 1 root root 299 Feb 16 03:24 index.jsp
# 浏览器访问部署的项目
发布镜像
DockerHub
-
地址:https://hub.docker.com/
-
创建自己的账号
-
登陆完成后,提交自己的镜像(docker push)
# 测试发布自己的镜像
# 登陆命令帮助
[root@izuf6akcgealirj602cmxsz test]# docker login --help
Usage: docker login [OPTIONS] [SERVER]
Log in to a Docker registry.
If no server is specified, the default is defined by the daemon.
Options:
-p, --password string Password
--password-stdin Take the password from stdin
-u, --username string Username
# 登陆
[root@izuf6akcgealirj602cmxsz test]# docker login -u jgenius
Password:
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded
# 提交自己的镜像
[root@izuf6akcgealirj602cmxsz tomcat]# docker push jgenius/tomcat:1.0
The push refers to repository [docker.io/jgenius/tomcat]
An image does not exist locally with the tag: jgenius/tomcat
# 发现报错了,解决报错
# 给自定义的镜像增加标签
[root@izuf6akcgealirj602cmxsz tomcat]# docker tag 866e2c50f3a3 jgenius/diytomcat
[root@izuf6akcgealirj602cmxsz tomcat]#
# 再次发布自己制作的镜像
发布到阿里云镜像->参考官方地址
- 登陆阿里云
- 找到容器镜像服务
- 创建命名空间
- 创建容器镜像仓库
[root@izuf6akcgealirj602cmxsz ~]# docker login --username=xinchej registry.cn-shanghai.aliyuncs.com
Password:
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded
[root@izuf6akcgealirj602cmxsz ~]# docker push diytomcat
Using default tag: latest
The push refers to repository [docker.io/library/diytomcat]
69aeca061f9e: Preparing
6e26aa735ead: Preparing
c62ceb659eab: Preparing
c9833f23d1b4: Preparing
174f56854903: Preparing
denied: requested access to the resource is denied
# 问题解决