【体系】Docker容器技术

01.Docker安装

docker容器可看作成一个简易版的linux环境

环境:CentOS 6.8

yum install epel-release 
yum install docker-io

之后出现docker无法安装的情况:
在这里插入图片描述
直接用下载源安装,执行命令:

yum install https://get.docker.com/rpm/1.7.1/centos6/RPMS/x86_64/docker-engine-1.7.1-1.el6.x86_64.rpm

该文件存在则证明安装成功:

vim /etc/sysconfig/docker

启动docker后台服务:

service docker start

dorker version进行最终验证

环境:CentOS 7.0

#1、安装依赖(docker依赖于系统的一些必要的工具,可以提前安装)
    yum install -y yum-utils device-mapper-persistent-data lvm2
#2、添加软件源
	yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#3、安装docker-ce
    yum clean all
	yum makecache fast
	yum -y install docker-ce
#4、启动服务(通过systemctl启动服务)
    systemctl start docker
#5、查看安装版本(这样子就安装成功了,启动服务以后可以使用docker version查看一下当前的版本)
	docker version
    [root@234-devlops ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
	[root@234-devlops ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    [root@234-devlops ~]# yum clean all
	[root@234-devlops ~]# yum makecache fast
	[root@234-devlops ~]# yum -y install docker-ce
    [root@234-devlops ~]# systemctl start docker
	[root@234-devlops ~]# docker version

02.阿里云镜像加速器配置

阿里云镜像加速器地址
在这里插入图片描述
复制到
在这里插入图片描述
在这里插入图片描述

03.HelloWorld运行

在这里插入图片描述
docker架构图
在这里插入图片描述
拉取过程中涉及到的原理:
在这里插入图片描述

04.Docker原理

docker是一个client-service结构的系统,docker守护进程运行在主机上,然后通过socket连接从客户端访问,守护进程从客户端接受命令并管理运行在主机上的容器。容器,是一个运行时环境,即鲸鱼身上的集装箱
在这里插入图片描述
docker为什么比虚拟机快?

  • docker不需要Hypervisor实现硬件资源虚拟化,运行在docker容器上的程序直接使用的都是实际物理机的硬件资源。因此在CPU、内存利用率上docker效率有明显优势
  • docker直接利用的是宿主机的内核,不需要Guest OS。在新建一个容器时,docker不需要和虚拟机一样重新加载一个操作系统内核。因此可以避免引寻、加载操作系统内核这个比较耗时耗资源的过程,新建一个docker容器只需要几秒钟。
    在这里插入图片描述

05.Docker镜像命令

#1.检查docker版本
[root@devops ~]# docker version
Client: Docker Engine - Community
Version:           19.03.8
...

#2.docker详细信息
[root@devops ~]# docker info
Client:
 Debug Mode: false

Server:
...

#3.docker命令帮助
[root@devops ~]# docker --help

Usage:	docker [OPTIONS] COMMAND

#4.列出本地主机上的镜像
#  参数-a(所有镜像) -q(只展示ID) -qa(常用参数) --digests(描述说明) --no-trunc(显示所有ID,默认截取)
[root@devops ~]# docker images
#  镜像仓库源        镜像标签(版本)        镜像ID               镜像创建时间
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
hello-world         latest              fce289e99eb9        15 months ago       1.84kB
#  若本地主机上面有则创建这个镜像的实例
[root@devops ~]# docker run hello-world
Hello from Docker!
...

#5.docker search 从dockerhub上查找镜像
#  docker search -s 30 tomcat 只显示stars数超过30tomcat
[root@devops ~]# docker search tomcat
NAME                          DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
tomcat                        Apache Tomcat is an open source implementati…   2681  
...

#6.docker pull 从阿里云上拉取镜像
[root@devops ~]# docker pull tomcat
Using default tag: latest
#  latest表示拉取的是最新版
[root@devops ~]# docker pull tomcat:latest
...

#7.删除镜像
#  后面没有版本,则默认为latest
[root@devops ~]# docker rmi hello-world
Error response from daemon: conflict: unable to remove repository reference "hello-world" (must force) - container 1eddec6544fc is using its referenced image fce289e99eb9
#  因为之前run过该镜像故不能删除,-f强制删除
[root@devops ~]# docker rmi -f hello-world
Untagged: hello-world:latest
Untagged: hello-world@sha256:f9dfddf63636d84ef479d645ab5885156ae030f611a56f3a7ac7f2fdd86d7e4e
Deleted: sha256:fce289e99eb9bca977dae136fbe2a82b6b7d4c372474c9235adc1741675f587e

#8.镜像提交commit
#  -p 容器端口:实际端口
[root@devops ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
tomcat              latest              e36064f7c6f0        19 hours ago        528MB
centos              latest              470671670cac        2 months ago        237MB
hello-world         latest              fce289e99eb9        15 months ago       1.84kB
[root@devops ~]# docker run -it -p 8888:8080 tomcat
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
...
#  在CentOS 7浏览器中输入localhost:8888即可访问tomcat
#  若无法访问请移步文章(http://www.qiangssvip.com/index.php/archives/484/)
#  -P 随机分配
[root@devops ~]# docker run -it -P tomcat
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
...
[root@devops ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED              STATUS              PORTS                     NAMES
cb0798d77f8f        tomcat              "catalina.sh run"   About a minute ago   Up About a minute   0.0.0.0:32768->8080/tcp   practical_diffie
...
#  在CentOS 7浏览器中输入localhost:32768即可访问tomcat

06.Docker自制镜像

在这里插入图片描述

#删除docs操作
[root@devops ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                    NAMES
dfa3b273f012        tomcat              "catalina.sh run"   2 minutes ago       Up 2 minutes        0.0.0.0:8888->8080/tcp   crazy_satoshi
#进入tomcat目录下删除docs部分
[root@devops ~]# docker exec -it dfa3b273f012 /bin/bash
root@dfa3b273f012:/usr/local/tomcat# ls
BUILDING.txt  CONTRIBUTING.md  LICENSE	NOTICE	README.md  RELEASE-NOTES  RUNNING.txt  bin  conf  include  lib	logs  native-jni-lib  temp  webapps  webapps.dist  work
root@dfa3b273f012:/usr/local/tomcat# cd webapps
root@dfa3b273f012:/usr/local/tomcat/webapps# ll
bash: ll: command not found
root@dfa3b273f012:/usr/local/tomcat/webapps# ls -l
total 0
root@dfa3b273f012:/usr/local/tomcat/webapps# cd ..
root@dfa3b273f012:/usr/local/tomcat# ls -l
total 124
...
drwxr-xr-x. 2 root root     6 Apr  1 08:51 webapps
drwxr-xr-x. 7 root root    81 Mar 11 10:04 webapps.dist
drwxrwxrwx. 2 root root     6 Mar 11 10:03 work
root@dfa3b273f012:/usr/local/tomcat# rm -rf webapps
root@dfa3b273f012:/usr/local/tomcat# cp -r webapps.dist webapps
root@dfa3b273f012:/usr/local/tomcat# docker ps
bash: docker: command not found
root@dfa3b273f012:/usr/local/tomcat# read escape sequence
[root@devops ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                    NAMES
dfa3b273f012        tomcat              "catalina.sh run"   4 minutes ago       Up 4 minutes        0.0.0.0:8888->8080/tcp   crazy_satoshi
[root@devops ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                    NAMES
dfa3b273f012        tomcat              "catalina.sh run"   10 minutes ago      Up 10 minutes       0.0.0.0:8888->8080/tcp   crazy_satoshi
[root@devops ~]# docker exec -it dfa3b273f012 /bin/bash
root@dfa3b273f012:/usr/local/tomcat# pwd
/usr/local/tomcat
root@dfa3b273f012:/usr/local/tomcat# ls -l
total 124
...
drwxr-xr-x. 7 root root    81 Apr  2 04:24 webapps
drwxr-xr-x. 7 root root    81 Mar 11 10:04 webapps.dist
drwxrwxrwx. 1 root root    22 Apr  2 04:24 work
root@dfa3b273f012:/usr/local/tomcat# cd webapps
root@dfa3b273f012:/usr/local/tomcat/webapps# ls -l
total 8
drwxr-xr-x.  3 root root 4096 Apr  2 04:24 ROOT
drwxr-xr-x. 16 root root 4096 Apr  2 04:24 docs
drwxr-xr-x.  6 root root   83 Apr  2 04:24 examples
drwxr-xr-x.  5 root root   87 Apr  2 04:24 host-manager
drwxr-xr-x.  5 root root  103 Apr  2 04:24 manager
root@dfa3b273f012:/usr/local/tomcat/webapps# rm -rf docs
root@dfa3b273f012:/usr/local/tomcat/webapps# ls
ROOT  examples	host-manager  manager
root@dfa3b273f012:/usr/local/tomcat/webapps# 

在这里插入图片描述

#制作没有docs功能的镜像并运行
[root@devops ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                    NAMES
dfa3b273f012        tomcat              "catalina.sh run"   15 minutes ago      Up 15 minutes       0.0.0.0:8888->8080/tcp   crazy_satoshi
[root@devops ~]# docker commit -a="docker-test" -m="tomcat with out docs" dfa3b273f012 docker-test/mytomcat:1.2
sha256:7711b224577c04207664a6c3735e998a4a805b91e7994f3de6c34a7c1c56cf2f
[root@devops ~]# docker images
REPOSITORY             TAG                 IMAGE ID            CREATED             SIZE
docker-test/mytomcat   1.2                 7711b224577c        13 seconds ago      530MB
tomcat                 latest              e36064f7c6f0        20 hours ago        528MB
centos                 latest              470671670cac        2 months ago        237MB
hello-world            latest              fce289e99eb9        15 months ago       1.84kB
[root@devops ~]# docker rm -f $(docker ps -q)
dfa3b273f012
[root@devops ~]# docker run -it -p 7777:8080 docker-test/mytomcat:1.2
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
...

在这里插入图片描述
在这里插入图片描述

#通过后台方式启动
[root@devops ~]# docker run -d -p 7778:8080 tomcat
fcebd6283f320c72c6c09a57d1b7ddf4bf79baaa7591075874baf9e2ab198e5a
[root@devops ~]# 
#  在CentOS 7浏览器中输入localhost:7778即可访问tomcat

07.Docker容器命令

#1.docker run 运行容器
#  -i以交互式运行容器 -t为容器分配一个伪用户终端 常-it(启动交互式容器)
#  运行并进入容器
[root@devops ~]# docker run -it 470671670cac
[root@ea63344907c5 /]# 
#  --name 给运行的容器重新起名
[root@devops ~]# docker run -it --name mycentos centos
[root@devops ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED              STATUS              PORTS               NAMES
6f9b9c500bad        centos              "/bin/bash"         About a minute ago   Up About a minute                       mycentos
#  -d 后台运行容器(启动守护式容器)
[root@devops ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
[root@devops ~]# docker run -d centos
1b55d53a5b45a9fbf43d1424012c8c3385862a7298e95d8d8719d29a4b2730af
[root@devops ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
#  问题:docker ps -a 进行查看,会发现容器已经退出
#  解答:Docker容器后台运行就必须有一个前台进程
#       容器运行的命令若不是那些一直挂起的命令(如top,tail)就会自动退出

#2.docker ps 显示所有运行的容器
[root@devops ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
ea63344907c5        470671670cac        "/bin/bash"         4 minutes ago       Up 4 minutes                            nice_nash
#  docker ps -l 显示上一个容器
[root@devops ~]# docker ps -l
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                          PORTS               NAMES
ea63344907c5        470671670cac        "/bin/bash"         8 minutes ago       Exited (0) About a minute ago                       nice_nash
#  docker ps -a 显示所有容器(之前运行+现在运行)
#  docker ps -lq 显示上一个容器的容器号
[root@devops ~]# docker ps -lq
ea63344907c5

#3.exit 退出并关闭容器
[root@ea63344907c5 /]# exit
exit
[root@devops ~]# 

#4.Ctrl+P+Q 退出并保持容器运行
[root@6f9b9c500bad /]# [root@devops ~]# 
[root@devops ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
6f9b9c500bad        centos              "/bin/bash"         4 minutes ago       Up 4 minutes                            mycentos
#  重新进入 docker attach
[root@devops ~]# docker attach 6f9b9c500bad
[root@6f9b9c500bad /]#
#  外部执行命令
[root@devops ~]# docker exec -t 6f9b9c500bad ls -l /tmp
total 8
-rwx------. 1 root root  671 Jan 13 21:49 ks-script-_srt3u3c
-rwx------. 1 root root 1379 Jan 13 21:49 ks-script-gpqu_kuo
[root@devops ~]# 
[root@devops ~]# docker exec -t 6f9b9c500bad /bin/bash
[root@6f9b9c500bad /]#

#5.启动容器
[root@devops ~]# docker ps -n 2
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES
6f9b9c500bad        centos              "/bin/bash"         7 minutes ago       Up 7 minutes                                    mycentos
ea63344907c5        470671670cac        "/bin/bash"         20 minutes ago      Exited (0) 13 minutes ago                       nice_nash
[root@devops ~]# docker start ea63344907c5
ea63344907c5
[root@devops ~]# docker ps 
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
6f9b9c500bad        centos              "/bin/bash"         17 minutes ago      Up 17 minutes                           mycentos
ea63344907c5        470671670cac        "/bin/bash"         31 minutes ago      Up 8 seconds                            nice_nash

#6.重启容器
[root@devops ~]# docker ps 
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
6f9b9c500bad        centos              "/bin/bash"         17 minutes ago      Up 17 minutes                           mycentos
ea63344907c5        470671670cac        "/bin/bash"         31 minutes ago      Up 8 seconds                            nice_nash
[root@devops ~]# docker restart 6f9b9c500bad
6f9b9c500bad
[root@devops ~]# docker ps 
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
6f9b9c500bad        centos              "/bin/bash"         20 minutes ago      Up 3 seconds                            mycentos
ea63344907c5        470671670cac        "/bin/bash"         34 minutes ago      Up 2 minutes                            nice_nash

#7.停止容器
[root@devops ~]# docker ps 
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
6f9b9c500bad        centos              "/bin/bash"         20 minutes ago      Up 3 seconds                            mycentos
ea63344907c5        470671670cac        "/bin/bash"         34 minutes ago      Up 2 minutes                            nice_nash
[root@devops ~]# docker stop 6f9b9c500bad
6f9b9c500bad
[root@devops ~]# docker ps 
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
ea63344907c5        470671670cac        "/bin/bash"         35 minutes ago      Up 4 minutes                            nice_nash

#8.强制停止容器
[root@devops ~]# docker kill ea63344907c5
ea63344907c5
[root@devops ~]# docker ps 
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

#9.删除已停止容器
[root@devops ~]# docker ps -n 2
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                            PORTS               NAMES
6f9b9c500bad        centos              "/bin/bash"         24 minutes ago      Exited (0) 2 minutes ago                              mycentos
ea63344907c5        470671670cac        "/bin/bash"         38 minutes ago      Exited (137) About a minute ago                       nice_nash
[root@devops ~]# docker rm ea63344907c5
ea63344907c5
[root@devops ~]# docker ps -n 2
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                     PORTS               NAMES
6f9b9c500bad        centos              "/bin/bash"         25 minutes ago      Exited (0) 3 minutes ago                       mycentos
f1c744484d71        fce289e99eb9        "/hello"            8 hours ago         Exited (0) 8 hours ago                         funny_moore
#  -f 强制删除,可删除没有停止的容器
#  删除所有容器
[root@devops ~]# docker rm -f $(docker ps -a -q)
[root@devops ~]# docker ps -a -q | xargs docker rm

#10.查看容器日志
#   -t(加入时间戳) -f(跟随最新的日志打印) --tail(数字显示最后多少条)
[root@devops ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
[root@devops ~]# docker run -d centos /bin/sh -c "while true; do echo hello zzyy; sleep 2; done"
9ab4c688a59225b974abbc2cea3a7ac8c7013b0dea50239b67166fe2beb86a4f
[root@devops ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
9ab4c688a592        centos              "/bin/sh -c 'while t…"   12 seconds ago      Up 11 seconds                           awesome_lamport
[root@devops ~]# docker logs 9ab4c688a592
hello zzyy
hello zzyy
hello zzyy
[root@devops ~]# docker logs -t -f --tail 3 9ab4c688a592
2020-04-01T16:17:25.242175914Z hello zzyy
2020-04-01T16:17:27.244393648Z hello zzyy
2020-04-01T16:17:29.246942722Z hello zzyy

#11.查看容器内运行的进程
[root@devops ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
9ab4c688a592        centos              "/bin/sh -c 'while t…"   4 minutes ago       Up 4 minutes                            awesome_lamport
[root@devops ~]# docker top 9ab4c688a592
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                4430                4414                0                   00:15               ?                   00:00:00            /bin/sh -c while true; do echo hello zzyy; sleep 2; done
root                4701                4430                0                   00:20               ?                   00:00:00            /usr/bin/coreutils --coreutils-prog-shebang=sleep /usr/bin/sleep 2

#12.查看容器内部细节
[root@devops ~]# docker inspect 9ab4c688a592
[
    {
        "Id": "9ab4c688a59225b974abbc2cea3a7ac8c7013b0dea50239b67166fe2beb86a4f",
        "Created": "2020-04-01T16:15:30.790616599Z",
...

#13.从容器内拷贝文件到主机
[root@devops ~]# docker cp a3019e135228:/tmp/yum.log /root

08.Docker容器数据卷

问题:
Docker容器产生的数据,若不通过docker commit生产新的镜像,使得数据作为镜像的一部分保存下来,那么当容器删除后,数据自然也就没有了,为了能保存数据在docker中我们使用卷;卷就是目录或文件,存在于一个或多个容器中,由docker挂载到容器,但不属于联合文件系统,因此能够绕过Union File System提供一些用于持续存储或共享数据的特征:卷设计的目的就是数据的持久化,完全独立于容器的生命周期,因此Docker不会在容器删除时删除其挂载的数据卷

理念:

  • 将运用与运行的环境打包成容器运行,运行的同时我们希望能够对数据持久化处理
  • 容器之间希望能够共享数据

特点:

  • 数据卷可在容器之间共享或重用数据
  • 卷中的更改可以直接生效
  • 数据卷中的更改不会包括在镜像的更新中
  • 数据卷的生命周期一直持续到没有容器使用它为止

功能:

  • 容器的持久化
  • 容器间集成+共享数据
#1.命令创建数据卷
[root@devops ~]# cd /
[root@devops /]# ls
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
[root@devops /]# docker run -it centos /bin/bash
[root@f73134f8e39a /]# ls
bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
#  创建目录共享文件夹
[root@devops /]# docker run -it -v /myDataVolume:/dataVolumeContainer centos
[root@23a187f23b7a /]# 
[root@23a187f23b7a /]# ls
bin  dataVolumeContainer  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
[root@23a187f23b7a /]# [root@devops /]# 
[root@devops /]# ls
bin  boot  dev  etc  home  lib  lib64  media  mnt  myDataVolume  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
#  查看是否挂载成功
[root@devops /]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
23a187f23b7a        centos              "/bin/bash"         5 minutes ago       Up 5 minutes                            elegant_moore
[root@devops /]# docker inspect 23a187f23b7a
...
"HostConfig": {
            "Binds": [
                "/myDataVolume:/dataVolumeContainer"
            ],
            "ContainerIDFile": "",
...
 "Mounts": [
            {
                "Type": "bind",
                "Source": "/myDataVolume",
                "Destination": "/dataVolumeContainer",
                "Mode": "",
                "RW": true,
                "Propagation": "rprivate"
            }
        ],
...
#  数据共享
[root@devops /]# cd myDataVolume/
[root@devops myDataVolume]# touch host.txt
[root@devops myDataVolume]# ls
host.txt
[root@devops myDataVolume]# docker attach 23a187f23b7a
[root@23a187f23b7a /]# cd dataVolumeContainer/
[root@23a187f23b7a dataVolumeContainer]# ls
host.txt
[root@23a187f23b7a dataVolumeContainer]# vi host.txt
container
[root@23a187f23b7a dataVolumeContainer]# touch container.txt
[root@23a187f23b7a dataVolumeContainer]# read escape sequence
[root@devops myDataVolume]# ls
container.txt  host.txt
[root@devops myDataVolume]# cat host.txt
container
#  容器关闭后,在主机共享区中更新数据,在容器启动后任然能够互相同步
[root@devops myDataVolume]# docker attach 23a187f23b7a
[root@23a187f23b7a dataVolumeContainer]# exit
exit
[root@devops myDataVolume]# touch host02.txt
[root@devops myDataVolume]# vi container.txt
[root@devops myDataVolume]# ls
container.txt  host02.txt  host.txt
[root@devops myDataVolume]# vi host.txt 
container
host update while container exit.
[root@devops myDataVolume]# docker ps -l
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                     PORTS               NAMES
23a187f23b7a        centos              "/bin/bash"         24 minutes ago      Exited (0) 4 minutes ago                       elegant_moore
[root@devops myDataVolume]# docker start 23a187f23b7a
23a187f23b7a
[root@devops myDataVolume]# docker attach 23a187f23b7a
[root@23a187f23b7a /]# cd dataVolumeContainer/
[root@23a187f23b7a dataVolumeContainer]# ls
container.txt  host.txt  host02.txt
[root@23a187f23b7a dataVolumeContainer]# cat host.txt
container
host update while container exit.
#  权限控制
[root@23a187f23b7a dataVolumeContainer]# exit
exit
[root@devops ~]# cd /
[root@devops /]# rm -rf myDataVolume/
[root@devops /]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
[root@devops /]# docker run -it -v /myDateVolume:/dataVolumeContainer:ro centos
[root@06f0edd00132 /]# ls
bin  dataVolumeContainer  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
[root@devops /]# ls
bin  boot  dev  etc  home  lib  lib64  media  mnt  myDateVolume  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
[root@devops /]# cd myDateVolume/
[root@devops myDateVolume]# touch host.txt
[root@devops myDateVolume]# ls
host.txt
[root@devops myDateVolume]# vi host.txt 
host update
[root@devops myDateVolume]# docker attach 06f0edd00132
[root@06f0edd00132 /]# cd dataVolumeContainer/
[root@06f0edd00132 dataVolumeContainer]# ls
host.txt
[root@06f0edd00132 dataVolumeContainer]# cat host.txt
host update
[root@06f0edd00132 dataVolumeContainer]# touch container.txt
touch: cannot touch 'container.txt': Read-only file system
[root@06f0edd00132 dataVolumeContainer]# vi host.txt 
host update
container update
"host.txt"
"host.txt" E212: Can't open file for writing
Press ENTER or type command to continue



#dockerfile创建数据卷
#1.根目录下新建mydocker文件夹并进入
[root@devops /]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
[root@devops /]# mkdir /mydocker
[root@devops /]# cd /mydocker
#2.在Dockerfile中使用volume指令来给镜像添加一个或多个数据卷
[root@devops mydocker]# vim dockerfile
# volume test
# 即docker run -it -v /host1:/dataVolumeContainer1 -v /host2:/dataVolumeContainer2 centos /bin/bash
FROM centos
VOLUME ["/dataVolumeContainer1","/dataVolumeContainer2"]
CMD echo "finished, ----------success1"
CMD /bin/bash
#3.File构建
[root@devops mydocker]# docker build -f /mydocker/Dockerfile -t docker-test/centos .
unable to prepare context: unable to evaluate symlinks in Dockerfile path: lstat /mydocker/Dockerfile: no such file or directory
[root@devops mydocker]# docker build -f /mydocker/dockerfile -t docker-test/centos .
Sending build context to Docker daemon  2.048kB
Step 1/4 : FROM centos
 ---> 470671670cac
Step 2/4 : VOLUME ["/dataVolumeContainer1","/dataVolumeContainer2"]
 ---> Running in 488694fc88e9
Removing intermediate container 488694fc88e9
 ---> 914e318d2546
Step 3/4 : CMD echo "finished, ----------success1"
 ---> Running in 1c4a627d41bc
Removing intermediate container 1c4a627d41bc
 ---> a646456d62a6
Step 4/4 : CMD /bin/bash
 ---> Running in 4a5c0355ced3
Removing intermediate container 4a5c0355ced3
 ---> baf6ff647f83
Successfully built baf6ff647f83
Successfully tagged docker-test/centos:latest
#4.build后生成镜像
[root@devops mydocker]# docker images
REPOSITORY             TAG                 IMAGE ID            CREATED             SIZE
docker-test/centos     latest              baf6ff647f83        43 seconds ago      237MB
docker-test/mytomcat   1.2                 7711b224577c        3 hours ago         530MB
tomcat                 latest              e36064f7c6f0        23 hours ago        528MB
centos                 latest              470671670cac        2 months ago        237MB
hello-world            latest              fce289e99eb9        15 months ago       1.84kB
[root@devops mydocker]# docker images docker-test/centos
REPOSITORY           TAG                 IMAGE ID            CREATED             SIZE
docker-test/centos   latest              baf6ff647f83        2 minutes ago       237MB
#5.run容器
[root@devops mydocker]# docker run -it docker-test/centos /bin/bash
[root@7b7aa44fc6a5 /]# ls
bin  dataVolumeContainer1  dataVolumeContainer2  dev  etc  home  lib  lib64  lost+found  media	mnt  opt  proc	root  run  sbin  srv  sys  tmp	usr  var
#6.对应主机的目录地址
[root@7b7aa44fc6a5 /]# ls
bin  dataVolumeContainer1  dataVolumeContainer2  dev  etc  home  lib  lib64  lost+found  media	mnt  opt  proc	root  run  sbin  srv  sys  tmp	usr  var
[root@7b7aa44fc6a5 /]# cd dataVolumeContainer1
[root@7b7aa44fc6a5 dataVolumeContainer1]# touch containter01.txt
[root@7b7aa44fc6a5 dataVolumeContainer1]# [root@devops mydocker]# 
[root@devops mydocker]# docker inspect 7b7aa44fc6a5
...
"Mounts": [
            {
                "Type": "volume",
                "Name": "5daeb8152d0b2b006872f2906f8bc1e14f2431b3dd67aa3227de09db918cb1c6",
                "Source": "/var/lib/docker/volumes/5daeb8152d0b2b006872f2906f8bc1e14f2431b3dd67aa3227de09db918cb1c6/_data",
                "Destination": "/dataVolumeContainer1",
                "Driver": "local",
                "Mode": "",
                "RW": true,
                "Propagation": ""
            },
            {
                "Type": "volume",
                "Name": "39642f30ed330a6ab7d48e652fafdeab2376fae98bc9d09d4b2432bb2227dd51",
                "Source": "/var/lib/docker/volumes/39642f30ed330a6ab7d48e652fafdeab2376fae98bc9d09d4b2432bb2227dd51/_data",
                "Destination": "/dataVolumeContainer2",
                "Driver": "local",
                "Mode": "",
                "RW": true,
                "Propagation": ""
            }
        ],
...
[root@devops mydocker]# cd /var/lib/docker/volumes/5daeb8152d0b2b006872f2906f8bc1e14f2431b3dd67aa3227de09db918cb1c6/_data
[root@devops _data]# ls
containter01.txt
[root@devops _data]# touch host.txt
[root@devops _data]# ls
containter01.txt  host.txt
[root@devops _data]# docker attach 7b7aa44fc6a5
[root@7b7aa44fc6a5 dataVolumeContainer1]# ls
containter01.txt  host.txt
#  注意:Docker挂载主机目录Docker访问出现cannot open directory .: Permission denied
#  解决:在挂载目录后多加一个--privilcgcd=true参数即可
#  应用:docker run -it -v /myDataVolume:/dataVolumeContainer --privileged=true 镜像名



#容器间传递共享(--volumes-from)
#1.先启动一个父容器dc01
[root@devops _data]# docker run -it --name dc01 docker-test/centos
[root@e9c252aa7d9d /]# ls
bin  dataVolumeContainer1  dataVolumeContainer2  dev  etc  home  lib  lib64  lost+found  media	mnt  opt  proc	root  run  sbin  srv  sys  tmp	usr  var
[root@e9c252aa7d9d dataVolumeContainer2]# ls
[root@e9c252aa7d9d dataVolumeContainer2]# touch dc01_add.txt
[root@e9c252aa7d9d dataVolumeContainer2]# [root@devops _data]# 
#2.dc02/dc03继承自dc01
[root@devops _data]# docker run -it --name dc02 --volumes-from dc01 docker-test/centos
[root@b9e0b333cddf /]# ls
bin  dataVolumeContainer1  dataVolumeContainer2  dev  etc  home  lib  lib64  lost+found  media	mnt  opt  proc	root  run  sbin  srv  sys  tmp	usr  var
[root@b9e0b333cddf /]# cd dataVolumeContainer2
[root@b9e0b333cddf dataVolumeContainer2]# ls
dc01_add.txt
[root@b9e0b333cddf dataVolumeContainer2]# touch dc02_add.txt
[root@b9e0b333cddf dataVolumeContainer2]# [root@devops _data]# 
[root@devops _data]# docker run -it --name dc03 --volumes-from dc01 docker-test/centos
[root@792ac2beee35 /]# cd dataVolumeContainer2
[root@792ac2beee35 dataVolumeContainer2]# touch dc03_add.txt
[root@792ac2beee35 dataVolumeContainer2]# ls
dc01_add.txt  dc02_add.txt  dc03_add.txt
[root@792ac2beee35 /]# [root@devops _data]# 
[root@devops _data]# docker attach dc01
[root@e9c252aa7d9d dataVolumeContainer2]# ls
dc01_add.txt  dc02_add.txt  dc03_add.txt
#3.回到dc01可以看到02/03各种添加的都能共享了
#4.删除dc01,dc02修改后dc03可否访问
[root@devops _data]# docker rm -f dc01
dc01
[root@devops _data]# docker attach dc02
[root@b9e0b333cddf dataVolumeContainer2]# ls
dc01_add.txt  dc02_add.txt  dc03_add.txt
[root@b9e0b333cddf dataVolumeContainer2]# touch dc02_update.txt
[root@b9e0b333cddf dataVolumeContainer2]# ls
dc01_add.txt  dc02_add.txt  dc02_update.txt  dc03_add.txt
[root@b9e0b333cddf dataVolumeContainer2]# read escape sequence
[root@devops _data]# docker attach dc03
[root@792ac2beee35 dataVolumeContainer2]# ls
dc01_add.txt  dc02_add.txt  dc02_update.txt  dc03_add.txt
#5.删除dc02后dc03可否访问
#6.新建dc04继承dc03后再删除dc03
#结论:容器之间配置信息的传递,数据卷的生命周期一直持续到没有容器使用它为止

09.Dockerfile详解

步骤:

  • 按照规范编写dockerfile文件
  • docker build命令执行该文件获得自定义镜像
  • run创建并运行容器

dockerfile执行大致流程:

  • docker从基础镜像运行一个容器
  • 执行一条指令并对容器作出修改
  • 执行类似docker commit的操作提交一个新的镜像层
  • docker再基于刚提交的镜像运行一个新容器
  • 执行dockfile中的下一条指令知道所有指令都执行完成

观察centos的dockerfile怎么写的:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
保留字指令(注意:每条保留字指令都必须为大写字母且后面要跟随至少一个参数):

  • FROM: 指定基础镜像
  • MAINTAINER:维护者姓名和邮箱
  • RUN:容器构建时需要运行的命令
  • EXPOSE:当前容器对外暴露出的端口
  • WORKDIR:指定在创建容器后,终端默认登录的进来工作目录(默认"/")
  • ENV:构建镜像过程中设置环境变量
  • ADD:将宿主机目录下的文件拷贝进镜像且ADD命令会自动处理URL和解压tar压缩包
  • COPY:拷贝文件和目录到镜像中(COPY src dest / COPY [“src”, “dest”])
  • VOLUME:容器数据卷,用于数据保存和持久化工作
  • CMD:指定容器启动时要运行的命令(dockerfile有多个CMD指令时只有最后一个生效,CMD会被docker run之后参数替换)
  • ENTRYPOINT:与CMD相同。但是ENTRYPOINT会被docker run之后参数追加
  • ONBUILD:当构建一个被继承的Dockerfile时运行命令,父镜像在被子继承后父镜像的onbuild被触发
#案例
#1、在centos7本机创建路径
[root@devops ~]# mkdir -p /zyf/mydockerfile/tomcat9
#2、在该路径下建立c.txt文本文件
[root@devops tomcat9]# touch c.txt
[root@devops tomcat9]# ls
c.txt
#将/opt下面tomcat和jdk安装包移动到/zyf/mydockerfile/tomcat9
[root@devops tomcat9]# cd /opt
[root@devops opt]# ll
总用量 200760
-rw-r--r--. 1 root root  11027411 4月   3 15:18 apache-tomcat-9.0.33.tar.gz
drwx--x--x. 4 root root        28 4月   1 14:50 containerd
-rw-r--r--. 1 root root 194545143 4月   3 15:58 jdk-8u241-linux-x64.tar.gz
drwxr-xr-x. 2 root root         6 10月 31 2018 rh
[root@devops opt]# cd /zyf/mydockerfile/tomcat9/
[root@devops tomcat9]# cp /opt/* .
[root@devops tomcat9]# ll
总用量 173876
-rw-r--r--. 1 root root  11027411 4月   3 16:24 apache-tomcat-9.0.33.tar.gz
-rw-r--r--. 1 root root         0 4月   3 14:48 c.txt
-rw-r--r--. 1 root root 167018496 4月   3 16:23 jdk-8u241-linux-x64.tar.gz
#编写Dockerfile
[root@devops tomcat9]# vim Dockerfile
FROM centos
MAINTAINER zyf<zyf192@163.com>
#把宿主机当前上下文的c.txt拷贝到容器/usr/local/路径下
FROM centos
MAINTAINER zyf<zyf192@163.com>
#把宿主机当前上下文的c.txt拷贝到容器/usr/local/路径下
COPY c.txt /usr/local/cincontainer.txt
#把java与tomcat添加到容器中
ADD jdk-8u241-linux-x64.tar.gz /usr/local/
ADD apache-tomcat-9.0.33.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_241
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.33
ENV CATALINA_BASE /usr/local/apache-tomcat-9.0.33
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
#容器运行时监听的端口
EXPOSE 8080
#启动时运行tomcat
#ENTRYPOINT ["/usr/local/apache-tomcat-9.0.33/bin/startup.sh"]
#CMD ["/usr/local/apache-tomcat-9.0.33/bin/catalina.sh","run"]
CMD /usr/local/apache-tomcat-9.0.33/bin/startup.sh && tail -F /usr/local/apache-tomcat-9.0.33/bin/logs/catalina.out
:wq
#生成zyftomcat9镜像文件
[root@devops tomcat9]# docker build -t zyftomcat9 .
Sending build context to Docker daemon  178.1MB
Step 1/15 : FROM centos
...
#查看镜像生成情况
[root@devops tomcat9]# docker images
REPOSITORY                                              TAG                 IMAGE ID            CREATED             SIZE
zyftomcat9                                              latest              777f1bd0e3c8        29 seconds ago      720MB
mycentos                                                1.4                 b5fea04a1614        6 hours ago         327MB
...
#运行创建容器
[root@devops tomcat9]# docker run -d -p 9080:8080 --name myt9 -v /zyf/mydockerfile/tomcat9/test:/usr/local/apache-tomcat-9.0.33/webapps/test -v /zyf/mydockerfile/tomcat9/tomcat9logs/:/usr/local/apache-tomcat-9.0.33/logs --privileged=true zyftomcat9
c28e6462de425cbcc7ad18ef8cbfd370d1ddb2d11b19b8f1f3b6547116eb7809
[root@devops tomcat9]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
c28e6462de42        zyftomcat9          "/bin/sh -c '/usr/lo…"   49 seconds ago      Up 45 seconds       0.0.0.0:9080->8080/tcp   myt9
d4a1e6a506a6        mycentos:1.3        "/bin/sh -c /bin/bash"   6 hours ago         Up 6 hours          80/tcp                   gallant_tu

centos7浏览器中访问地址:
在这里插入图片描述

#从容器执行语句观察容器里面内容
[root@devops tomcat9]# docker exec c28e6462de42 ls -l /tmp
total 8
drwxr-x---. 2 root root   16 Apr  3 09:07 hsperfdata_root
-rwx------. 1 root root  671 Jan 13 21:49 ks-script-_srt3u3c
-rwx------. 1 root root 1379 Jan 13 21:49 ks-script-gpqu_kuo
#结合前述的容器卷将测试的web服务test发布
[root@devops tomcat9]# cd test
[root@devops test]# mkdir WEB-INF
[root@devops test]# cd WEB-INF/
[root@devops WEB-INF]# vim web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns="http://java.sun.com/xml/ns/javaee"
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
  id="WebApp_ID" version="2.5">

  <display-name>test</display-name>

</web-app>
:wq
[root@devops WEB-INF]# cd ..
[root@devops test]# ll
总用量 0
drwxr-xr-x. 2 root root 21 4月   3 17:23 WEB-INF
[root@devops test]# vim a.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
  </head>
  <body>
    ----------------welcome-----------------
    <%="i am in docker tomcat self "%>
    <br>
    <br>
    <% System.out.print("============docker tomcat self");%>
  </body>
<html>
:wq
[root@devops test]# ll
总用量 4
-rw-r--r--. 1 root root 514 4月   3 17:38 a.jsp
drwxr-xr-x. 2 root root  21 4月   3 17:23 WEB-INF
[root@devops test]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
c28e6462de42        zyftomcat9          "/bin/sh -c '/usr/lo…"   32 minutes ago      Up 32 minutes       0.0.0.0:9080->8080/tcp   myt9
d4a1e6a506a6        mycentos:1.3        "/bin/sh -c /bin/bash"   7 hours ago         Up 7 hours          80/tcp                   gallant_tu
[root@devops test]# docker restart c28e6462de42
c28e6462de42

重启后centos7浏览器访问tomcat页面
在这里插入图片描述
在这里插入图片描述

[root@devops test]# cd ..
[root@devops tomcat9]# ll
总用量 200764
-rw-r--r--. 1 root root  11027411 4月   3 16:24 apache-tomcat-9.0.33.tar.gz
-rw-r--r--. 1 root root         0 4月   3 14:48 c.txt
-rw-r--r--. 1 root root      1028 4月   3 16:44 Dockerfile
-rw-r--r--. 1 root root 194545143 4月   3 15:58 jdk-8u241-linux-x64.tar.gz
drwxr-xr-x. 3 root root        34 4月   3 17:38 test
drwxr-xr-x. 2 root root       197 4月   3 17:07 tomcat9logs
[root@devops tomcat9]# cd tomcat9logs/
[root@devops tomcat9logs]# ll
总用量 40
-rw-r-----. 1 root root 13076 4月   3 17:40 catalina.2020-04-03.log
-rw-r-----. 1 root root 13106 4月   3 17:42 catalina.out
-rw-r-----. 1 root root     0 4月   3 17:07 host-manager.2020-04-03.log
-rw-r-----. 1 root root   816 4月   3 17:40 localhost.2020-04-03.log
-rw-r-----. 1 root root   878 4月   3 17:42 localhost_access_log.2020-04-03.txt
-rw-r-----. 1 root root     0 4月   3 17:07 manager.2020-04-03.log
[root@devops tomcat9logs]# cat catalina.out
...
03-Apr-2020 09:40:45.543 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
03-Apr-2020 09:40:45.557 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in [1,188] milliseconds
============docker tomcat self[root@devops tomcat9logs]# 

10.本地镜像推送至阿里云

1.创建本地镜像原型

#查看本机镜像
[root@devops ~]# docker images
REPOSITORY             TAG                 IMAGE ID            CREATED             SIZE
myip                   latest              d6e098b930e8        12 hours ago        263MB
<none>                 <none>              cddcefd20260        12 hours ago        263MB
mycentos               1.3                 f4806628e7e1        13 hours ago        327MB
docker-test/centos     latest              baf6ff647f83        19 hours ago        237MB
docker-test/mytomcat   1.2                 7711b224577c        22 hours ago        530MB
tomcat                 latest              e36064f7c6f0        42 hours ago        528MB
mysql                  5.6                 c21620125f9e        3 days ago          303MB
centos                 latest              470671670cac        2 months ago        237MB
hello-world            latest              fce289e99eb9        15 months ago       1.84kB
#运行创建mycentos:1.3容器
[root@devops ~]# docker run -it mycentos:1.3
[root@d4a1e6a506a6 local]# pwd
/usr/local
[root@d4a1e6a506a6 local]# [root@devops ~]# 
#检查到mycentos:1.3容器正在运行
[root@devops ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
d4a1e6a506a6        mycentos:1.3        "/bin/sh -c /bin/bash"   16 seconds ago      Up 13 seconds       80/tcp              gallant_tu
#以mycentos:1.3为模板生成mycentos:1.4
[root@devops ~]# docker commit -a zyf -m "new mycentos1.4 with vim and ifconfig" d4a1e6a506a6 mycentos:1.4
sha256:b5fea04a1614beb3af78e19d21c215dc08006a4c19f256d459531049647a7790
#检查mycentos:1.4镜像是否生成
[root@devops ~]# docker images
REPOSITORY             TAG                 IMAGE ID            CREATED             SIZE
mycentos               1.4                 b5fea04a1614        3 minutes ago       327MB
myip                   latest              d6e098b930e8        12 hours ago        263MB
<none>                 <none>              cddcefd20260        13 hours ago        263MB
mycentos               1.3                 f4806628e7e1        13 hours ago        327MB
docker-test/centos     latest              baf6ff647f83        19 hours ago        237MB
docker-test/mytomcat   1.2                 7711b224577c        23 hours ago        530MB
tomcat                 latest              e36064f7c6f0        42 hours ago        528MB
mysql                  5.6                 c21620125f9e        3 days ago          303MB
centos                 latest              470671670cac        2 months ago        237MB
hello-world            latest              fce289e99eb9        15 months ago       1.84kB

2.登录阿里云开发者平台
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
3.将本地镜像推送至阿里云

#登录阿里云认证
[root@devops ~]# docker login --username=那谁头大 registry.cn-shenzhen.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@devops ~]# docker tag b5fea04a1614 registry.cn-shenzhen.aliyuncs.com/person-zyf/mycentos:1.4.1
[root@devops ~]# docker push registry.cn-shenzhen.aliyuncs.com/person-zyf/mycentos:1.4.1
The push refers to repository [registry.cn-shenzhen.aliyuncs.com/person-zyf/mycentos]
c932065ee5b3: Pushed 
d312c6a31284: Pushed 
0683de282177: Pushed 
1.4.1: digest: sha256:537bf8548af4e899a9bdfc087c06ca7e3cf73fc0258ef570a75c6a24bc68bacd size: 953
[root@devops ~]# docker images
REPOSITORY                                              TAG                 IMAGE ID            CREATED             SIZE
mycentos                                                1.4                 b5fea04a1614        34 minutes ago      327MB
registry.cn-shenzhen.aliyuncs.com/person-zyf/mycentos   1.4.1               b5fea04a1614        34 minutes ago      327MB
myip                                                    latest              d6e098b930e8        13 hours ago        263MB
<none>                                                  <none>              cddcefd20260        13 hours ago        263MB
mycentos                                                1.3                 f4806628e7e1        13 hours ago        327MB
docker-test/centos                                      latest              baf6ff647f83        20 hours ago        237MB
docker-test/mytomcat                                    1.2                 7711b224577c        23 hours ago        530MB
tomcat                                                  latest              e36064f7c6f0        43 hours ago        528MB
mysql                                                   5.6                 c21620125f9e        3 days ago          303MB
centos                                                  latest              470671670cac        2 months ago        237MB
hello-world                                             latest              fce289e99eb9        15 months ago       1.84kB

4.阿里云查看是否推送成功
在这里插入图片描述
5.从阿里云拉取到本机

[root@devops ~]# docker images
REPOSITORY                                              TAG                 IMAGE ID            CREATED             SIZE
mycentos                                                1.4                 b5fea04a1614        38 minutes ago      327MB
registry.cn-shenzhen.aliyuncs.com/person-zyf/mycentos   1.4.1               b5fea04a1614        38 minutes ago      327MB
myip                                                    latest              d6e098b930e8        13 hours ago        263MB
<none>                                                  <none>              cddcefd20260        13 hours ago        263MB
mycentos                                                1.3                 f4806628e7e1        13 hours ago        327MB
docker-test/centos                                      latest              baf6ff647f83        20 hours ago        237MB
docker-test/mytomcat                                    1.2                 7711b224577c        23 hours ago        530MB
tomcat                                                  latest              e36064f7c6f0        43 hours ago        528MB
mysql                                                   5.6                 c21620125f9e        3 days ago          303MB
centos                                                  latest              470671670cac        2 months ago        237MB
hello-world                                             latest              fce289e99eb9        15 months ago       1.84kB
#删除镜像
[root@devops ~]# docker rmi -f registry.cn-shenzhen.aliyuncs.com/person-zyf/mycentos:1.4.1
Untagged: registry.cn-shenzhen.aliyuncs.com/person-zyf/mycentos:1.4.1
Untagged: registry.cn-shenzhen.aliyuncs.com/person-zyf/mycentos@sha256:537bf8548af4e899a9bdfc087c06ca7e3cf73fc0258ef570a75c6a24bc68bacd
[root@devops ~]# docker images
REPOSITORY             TAG                 IMAGE ID            CREATED             SIZE
mycentos               1.4                 b5fea04a1614        39 minutes ago      327MB
myip                   latest              d6e098b930e8        13 hours ago        263MB
<none>                 <none>              cddcefd20260        13 hours ago        263MB
mycentos               1.3                 f4806628e7e1        13 hours ago        327MB
docker-test/centos     latest              baf6ff647f83        20 hours ago        237MB
docker-test/mytomcat   1.2                 7711b224577c        23 hours ago        530MB
tomcat                 latest              e36064f7c6f0        43 hours ago        528MB
mysql                  5.6                 c21620125f9e        3 days ago          303MB
centos                 latest              470671670cac        2 months ago        237MB
hello-world            latest              fce289e99eb9        15 months ago       1.84kB
#拉取
[root@devops ~]# docker pull registry.cn-shenzhen.aliyuncs.com/person-zyf/mycentos:1.4.1
1.4.1: Pulling from person-zyf/mycentos
Digest: sha256:537bf8548af4e899a9bdfc087c06ca7e3cf73fc0258ef570a75c6a24bc68bacd
Status: Downloaded newer image for registry.cn-shenzhen.aliyuncs.com/person-zyf/mycentos:1.4.1
registry.cn-shenzhen.aliyuncs.com/person-zyf/mycentos:1.4.1
[root@devops ~]# docker images
REPOSITORY                                              TAG                 IMAGE ID            CREATED             SIZE
mycentos                                                1.4                 b5fea04a1614        42 minutes ago      327MB
registry.cn-shenzhen.aliyuncs.com/person-zyf/mycentos   1.4.1               b5fea04a1614        42 minutes ago      327MB
myip                                                    latest              d6e098b930e8        13 hours ago        263MB
<none>                                                  <none>              cddcefd20260        13 hours ago        263MB
mycentos                                                1.3                 f4806628e7e1        14 hours ago        327MB
docker-test/centos                                      latest              baf6ff647f83        20 hours ago        237MB
docker-test/mytomcat                                    1.2                 7711b224577c        23 hours ago        530MB
tomcat                                                  latest              e36064f7c6f0        43 hours ago        528MB
mysql                                                   5.6                 c21620125f9e        3 days ago          303MB
centos                                                  latest              470671670cac        2 months ago        237MB
hello-world                                             latest              fce289e99eb9        15 months ago       1.84kB

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值