Docker 相关技术学习总结

目录

零、Docker简单介绍总结

0-0 容器介绍

0-1 容器 vs 虚拟机

0-2 Docker的应用场景

0-3 Docker 内核依赖技术

0-4 Docker 所具备的功能

一、Docker容器技术前期准备

1-0 环境准备

1-1 pull 下载常用镜像

二、Docker容器技术的三大构成

2-0 三大构成的简单介绍

2-1 Docker各组成部分关系

三、 Image镜像相关操作

3-1 选择指定镜像的方式(两种)

3-1-1 使用指定名字 镜像名:版本TAG

3-1-2 使用IMAGE ID

3-2 本地镜像的查询操作

3-2-0 查看本地所有已pull镜像

3-2-1 --no-trunc 查看ID的全部内容,但通常使用前几位

3-2-2 只显示镜像id

3-2-3 显示镜像的详细信息

3-3 本地镜像及容器的删除操作

3-4 本地镜像的导入导出

3-4-1 导出 (save)

3-4-2 导入(load)

3-5 启动容器并获取镜像

四、镜像制作

4-0 容器的增删查

4-1 创建镜像的三大步骤

4-2 本地镜像的状态保存及创建

五、镜像内yum源的优化操作

5-1 基于centos7系统,对ssh的配置

六 、具体环境制作镜像 - centos7.5+vim+net-tools+iproute+sshd

七、Dockerfile 的简单应用- centos7.5+vim+net-tools+iproute+sshd

八、container容器相关操作

8-0 容器的基本类型

8-0-1 工具类 - 交互式启动

8-0-2 服务类 - 后台启动

8-1 容器的启动方式

8-1-1 交互式启动

8-1-2 守护式启动

8-2 容器的基本管理

8-2-1 查看

8-2-2 删除

8-2-3 关闭和启动

九、Dockerfile 的基本介绍及使用

9-1 Dockerfile的作用(用于镜像生成)

9-2 Dockerfile 语法格式

9-3 Dockerfile 命令详解

9-3-1 FROM

9-3-2 RUN

9-3-3 CMD

9-3-4 ENTRYPOINT

9-3-5 EXPOSE

9-3-6 ENV

9-3-7 ADD

9-3-8 COPY

9-3-9 VOLUME

9-3-10 USER

9-3-11 WORKDIR

9-3-12 ONBUILD

十、Docker 数据卷

10-1 启动时使用数据卷(-v)

十一 、实现复杂的Dockerfile使用,包含数据卷(redis配置)

十二、Docker 本地私有仓库

12-0 搭建私有仓库

12-1 上传镜像到私有仓库

12-2 从私有仓库下载镜像到本地


零、Docker简单介绍总结

0-0 容器介绍

  • 一种类虚拟化的方案
  • 操作系统级别功能
  • 只能运行同内核或类内核的OS
  • 依赖Linux内核特性:NamespaceCgroups

0-1 容器 vs 虚拟机

容器和虚拟机之间的主要区别虚拟化层的位置操作系统资源的使用方式

  • 容器
    • 不需要安装主机操作系统,直接将容器层(比如LXC或libcontainer)安装在主机操作系统(通常是Linux变种)之上
    • 每个容器化应用都会共享相同的操作系统(单个主机操作系统)
    • 直接利用了宿主机的内核,抽象层比虚拟机更少,更加轻量化,启动速度极快
    • 每套容器都拥有自己的隔离化用户空间,从而使得多套容器能够运行在同一主机系统之上
  • 虚拟机
    • 虚拟机会将虚拟硬件、内核(即操作系统)以及用户空间打包在新虚拟机当中,虚拟机能够利用“虚拟机管理程序”运行在物理设备之上。
    • 虚拟机依赖于hypervisor,其通常被安装在“裸金属”系统硬件之上,这导致hypervisor在某些方面被认为是一种操作系统。一旦 hypervisor安装完成, 就可以从系统可用计算资源当中分配虚拟机实例了,每台虚拟机都能够获得唯一的操作系统和负载(应用程序)。
    • 虚拟机先需要虚拟一个物理环境,然后构建一个完整的操作系统,再搭建一层Runtime,然后供应用程序运行。 

Docker 相关技术学习总结_第1张图片

0-2 Docker的应用场景

  • 开发、测试、部署服务
  • 隔离的运行环境
  • 构建多用户的平台即服务(PaaS)基础设施
  • 提供软件即服务(SaaS)应用程序
  • 高性能、超大规模系统

0-3 Docker 内核依赖技术

  • NameSpace 命名空间(用于资源的隔离)
    Docker 相关技术学习总结_第2张图片
  • Control GroupsCgroups)控制组 (用于资源的管理分配)
     

0-4 Docker 所具备的功能

  • 文件系统隔离:每个容器都有自己的rootfs
  • 进程隔离:每个容器都运行在自己的集成环境中
  • 网络隔离:容器间的虚拟网路接口和IP都是分开的
  • 资源组隔离:使用CgroupCpuMem资源独立分配给每个Docker容器。

 

一、Docker容器技术前期准备

1-0 环境准备

# 获取 Docker 的 yum 源
curl  http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker-ce.repo

# 依赖包安装
yum install -y yum-utils device-mapper-persistent-data lvm2
​
# 查询docker版本情况
yum list docker-ce.x86_64 --showduplicates | sort -r
​
# 安装docker(一条语句)
yum install -y --setopt=obsoletes=0 \
docker-ce-17.03.2.ce-1.el7.centos.x86_64 \
docker-ce-selinux-17.03.2.ce-1.el7.centos.noarch

Docker 相关技术学习总结_第3张图片

docker启动
systemctl daemon-reload
systemctl restart docker
​
开机自启
systemctl enable docker

Docker 相关技术学习总结_第4张图片

测试语句,显示当前docker版本号
docker version

Docker 相关技术学习总结_第5张图片

配置镜像加速(阿里云Docker-hub)
mkdir -p /etc/docker
​
配置文件
vim /etc/docker/daemon.json
{
  "registry-mirrors": ["https://68rmyzg7.mirror.aliyuncs.com"]
}
​
或者一步(同上一部配置文件) - 若存在错误,请查看阿里云Docker配置官方文档
tee /etc/docker/daemon.json <<-'EOF'
{
   "registry-mirrors": ["https://68rmyzg7.mirror.aliyuncs.com"]
}
EOF	  

重启docker
systemctl restart docker

Docker 相关技术学习总结_第6张图片

1-1 pull 下载常用镜像

下载基础镜像系统
docker pull centos:6.9
docker pull centos:7.5.1804
​
获取带有nginx的镜像
docker pull nginx

 

查看pull到本地的镜像
docker images

启动本地镜像容器
docker run -it  centos:6.9

查看当前镜像(容器内执行命令)
cat /etc/redhat=release
​
退出
exit

二、Docker容器技术的三大构成

2-0 三大构成的简单介绍

  • Docker Image镜像
    • 容器的基石
    • 层叠的只读文件系统
    • 联合加载模式
  • Docker container容器
    • 通过Image启动
    • 是容器的启动和执行阶段
    • 写时复制
  • Docker registry 仓
    • 公有
    • 私有
    • Docker hub

2-1 Docker各组成部分关系

Docker 相关技术学习总结_第7张图片

 

三、 Image镜像相关操作

3-1 选择指定镜像的方式(两种)

3-1-1 使用指定名字 镜像名:版本TAG

Docker 相关技术学习总结_第8张图片

3-1-2 使用IMAGE ID

3-2 本地镜像的查询操作

3-2-0 查看本地所有已pull镜像

docker images

3-2-1 --no-trunc 查看ID的全部内容,但通常使用前几位

docker images --no-trunc

Docker 相关技术学习总结_第9张图片

3-2-2 只显示镜像id

docker images -q 

Docker 相关技术学习总结_第10张图片

3-2-3 显示镜像的详细信息

docker inspect ID/name:tag

3-3 本地镜像及容器的删除操作

删除指定镜像
docker rmi  ID 

删除命令的所有结果镜像
docker rmi `docker images -q`
​
-f 强制删除所有当前启动容器
docker rm -f `docker ps -qa`

Docker 相关技术学习总结_第11张图片

3-4 本地镜像的导入导出

3-4-1 导出 (save)

docker save IMAGE-ID >重定向的指定目录文件
​
docker image save nginx >/opt/nginx.tar.gz

3-4-2 导入(load)

docker load -i 指定镜像地址
​
docker image load -i /opt/nginx.tar.gz

查看本地镜像,确认镜像被导入
docker images

3-5 启动容器并获取镜像

启动容器并自动获取镜像
docker  run -d -p 80:80 httpd
​
查看正在运行的镜像
docker ps -a
​
查看本地镜像
docker images  

 Docker 相关技术学习总结_第12张图片 

Docker 相关技术学习总结_第13张图片

访问httpd
curl -I 10.0.0.100

Docker 相关技术学习总结_第14张图片

四、镜像制作

制作镜像的目的:保存一个镜像的当时环境状态,可用于回滚等操作,类似于虚拟机的快照

4-0 容器的增删查

启动指定容器
docker run -it --name "test" centos:6.9
docker run -it --name "指定name" 基于的镜像名字或ID

Docker 相关技术学习总结_第15张图片

查看当前启动容器
docker ps -a

 

强制删除所有当前启动容器
docker rm -f `docker ps -qa`

 

4-1 创建镜像的三大步骤

查看当前启动的容器
docker ps -a 
​
docker commit 镜像name 自定义名:TAG
docker commit xxxxxx oldguo/wordpress:v1
​
查看本地镜像
docker images 

 Docker 相关技术学习总结_第16张图片

4-2 本地镜像的状态保存及创建

原有镜像修改创建(状态的保存)
​
启动本地的指定镜像
docker run -it -p 180:80 --name="wordpress1" ae74026f73e5  /bin/bash
​
在指定镜像内做相关操作,改变一些状态
cd /usr/local/apache2/htdocs
​
echo "

Hi,Oldguo

" >index.html ​ exit ​ 创建当前状态的镜像 docker commit wordpress1 oldguo/wordpress:v2 删除现有所有启动的容器 docker rm -f `docker ps -qa` 启动指定镜像,获取保存镜像 docker run -it --name="test" 0ae9bcda8b8b /bin/bash

Docker 相关技术学习总结_第17张图片

五、镜像内yum源的优化操作

mv /etc/yum.repos.d/*.repo /tmp
echo -e "[ftp]\nname=ftp\nbaseurl=ftp://10.0.0.100/pub/centos7\ngpgcheck=0">/etc/yum.repos.d/ftp.repo
​
下载必须的软件包
yum install -y vim net-tools  iproute  -y
yum install -y openssh-*

5-1 基于centos7系统,对ssh的配置

​​​​注意:Centos7系统必须对ssh进行一些配置,才能启动ssh服务

 yum install -y sed 
 
 下方代码全部一次复制粘贴 
 mkdir /var/run/sshd
 echo 'UseDNS no' >> /etc/ssh/sshd_config
 sed -i -e '/pam_loginuid.so/d' /etc/pam.d/sshd
 echo 'root:123456' | chpasswd
 /usr/bin/ssh-keygen -A

注意:配置了ssh的相关用户名和密码

Docker 相关技术学习总结_第18张图片

启动ssh服务
/usr/sbin/sshd -D 
退出前步
ctrl+p+q

Docker 相关技术学习总结_第19张图片

查看容器的ip地址
docker inspect

Docker 相关技术学习总结_第20张图片

通过宿主器去连接容器 
ssh 容器IP
​
密码在ssh配置脚本内配置root:123456

Docker 相关技术学习总结_第21张图片

 

六 、具体环境制作镜像 - centos7.5+vim+net-tools+iproute+sshd

启动新容器
docker run -it --name "centos7.5" 76d6bc25b8a5

Docker 相关技术学习总结_第22张图片

优化yum源
mv /etc/yum.repos.d/*.repo /tmp
echo -e "[ftp]\nname=ftp\nbaseurl=ftp://10.0.0.100/pub/centos7\ngpgcheck=0">/etc/yum.repos.d/ftp.repo

安装必须软件包
yum install -y vim net-tools  iproute   openssh-*   -y

启动sshd(centos7容器)
mkdir /var/run/sshd
echo 'UseDNS no' >> /etc/ssh/sshd_config
sed -i -e '/pam_loginuid.so/d' /etc/pam.d/sshd
echo 'root:123456' | chpasswd
/usr/bin/ssh-keygen -A
/usr/sbin/sshd -D 
​
退出上述步骤,但不关闭容器
ctrl p  q

Docker 相关技术学习总结_第23张图片

基于上述容器制作镜像
docker commit centos7.5 oldguo/centos7_sshd:v2

Docker 相关技术学习总结_第24张图片

 

七、Dockerfile 的简单应用- centos7.5+vim+net-tools+iproute+sshd

注意:Dockerfile 必须依赖于yum优化后的镜像

'''
FROM 基础镜像(若基础镜像本地不存在,会自动进行pull操作获取)
RUN 执行命令
EXPOST 服务对外暴露的端口号
CMD 使用命令执行
CMD ["/usr/sbin/sshd", "-D"] 基于当前容器启动是,执行-D命令,用于夯住sshd服务
'''
​
# 宿主机下的配置
cd /opt
mkdir dockerfile
vim  dockerfile  
'''注意:dockerfile文件的名字必须是dockerfile'''
​
FROM centos:7.5.1804
RUN mv /etc/yum.repos.d/*.repo /tmp
RUN echo -e "[ftp]\nname=ftp\nbaseurl=ftp://10.0.0.100/pub/centos7\ngpgcheck=0">/etc/yum.repos.d/ftp.repo
RUN yum install -y openssh-server
RUN yum install -y openssh-clients
RUN yum install net-tools* -y
RUN yum install iproute-* -y
RUN mkdir /var/run/sshd
RUN echo 'UseDNS no' >> /etc/ssh/sshd_config
RUN sed -i -e '/pam_loginuid.so/d' /etc/pam.d/sshd
RUN echo 'root:123456' | chpasswd
RUN /usr/bin/ssh-keygen -A
EXPOSE 22
CMD ["/usr/sbin/sshd", "-D"]

 Docker 相关技术学习总结_第25张图片

构建镜像 
docker build -t "oldguo/centos7_sshd:v3" /opt/dockerfile
​
注意:/opt/dockerfile 是文件所在的目录,而非文件本身

Docker 相关技术学习总结_第26张图片

 

八、container容器相关操作

8-0 容器的基本类型

8-0-1 工具类 - 交互式启动

工具类:vim  
    docker run -it --name="test_vim"  3fe2fe0dab2e /bin/bash
​
-it 交互式启动(启动即登陆)
/bin/bash 进入后执行的命令
​
退出交互式
exit
​
将交互式交于后台执行
ctrl + p + q

 注意:交互式无法自动启动,必须手动启动服务,如下图:

8-0-2 服务类 - 后台启动

服务类:nginx 
    docker run -d -p 8080:80 --name="discuz" nginx:1.14
    
-d 后台运行
-p 虚拟机的8080端口:容器的80端口

8-1 容器的启动方式

8-1-1 交互式启动

  • docker run -it --name="test_vim"  3fe2fe0dab2e /bin/bash
  • -it 启动
  • /bin/bash 指定启动后的命令;/bin/bash为为容器生成母进程的命令
  • exit 退出,服务类进程会关闭服务

8-1-2 守护式启动

  • 1- 交互式启动容器+Ctrl+p+q -- 后台执行
  • 2- 死循环 - 夯住服务
  • 3- 服务前台运行 - 挂机操作

8-2 容器的基本管理

8-2-1 查看

查看当前容器状态
    docker ps -a  查看当前所有容器情况

    docker ps -q  查看当前正在运行的id
    docker ps -qa 查看所有容器的id

    docker ps -l 查看最近创建的一个容器
    docker ps -ql  查看最近创建的一个容器id

Docker 相关技术学习总结_第27张图片

 Docker 相关技术学习总结_第28张图片

Docker 相关技术学习总结_第29张图片

查看指定容器的进程情况
​docker top nginx

查看指定容器的详细信息
​docker inspect nginx

Docker 相关技术学习总结_第30张图片

进入交互式容器内(ctrl+q+p的相反操作)
​docker attach 容器ID|容器名称

注意:atach为镜像关系,多个窗口执行相同步骤
​
退出即结束服务
exit
​
另一种进入交互式的方式(非镜像操作)
​docker exec  -i -t  容器ID|容器名称 /bin/bash(服务类),一般是做服务类容器调试用
docker exec -it  centos6.9   /bin/bash

Docker 相关技术学习总结_第31张图片

 

8-2-2 删除

删除单个指定容器(使用name或ID指定)
docker rm 容器ID|容器名称
​
删除所有容器(已退出和未退出)
docker rm -f `docker ps -a –q`

Docker 相关技术学习总结_第32张图片

批量删除已经退出的容器
docker rm -v $(docker ps -aq -f status=exited)

8-2-3 关闭和启动

停止服务(速度较慢)
docker stop 指定容器
​
强制停止
docker kill 指定容器

Docker 相关技术学习总结_第33张图片

Docker 相关技术学习总结_第34张图片

启动容器
docker start -i 指定容器
​
重启容器
docker restart 指定容器

Docker 相关技术学习总结_第35张图片

Docker 相关技术学习总结_第36张图片

九、Dockerfile 的基本介绍及使用

9-1 Dockerfile的作用(用于镜像生成)

Docker通过读取Dockerfile里面的内容可以自动build image,Dockerfile是一个包含了build过程中需要执行的所有命令的文本文件。也可以理解为Dockfile是一种被Docker程序解释的脚本,由一条一条的指令组成,每条指令对应Linux系统下面的一条命令,由Docker程序将这些Dockerfile指令翻译成真正的Linux命令。

Dockerfile有自己书写格式和支持的命令,Docker程序解决这些命令间的依赖关系,类似于Makefile。Docker程序将读取Dockerfile,根据指令生成定制的image。相比image这种黑盒子,Dockerfile这种显而易见的脚本更容易被使用者接受,它明确的表明image是怎么产生的。有了Dockerfile,当我们需要定制自己额外的需求时,只需在Dockerfile上添加或者修改指令,重新生成image即可,省去了敲命令的麻烦。

9-2 Dockerfile 语法格式

基本功能
    FROM
    RUN

常用功能
    CMD
    MAINTAINER
    ENTRYPOINT
    EXPOSE
    USER
    ENV
    ADD
    COPY
    VOLUME
    WORKDIR
    ONBUILD

9-3 Dockerfile 命令详解

9-3-1 FROM

  • Dockerfile必须以FROM指令开始,FROM指令指定了基础镜像是什么。也就是基于哪个镜像来制作自己的镜像。
  • FROM
  • image name的格式一般为"image:tag"

Docker 相关技术学习总结_第37张图片

9-3-2 RUN

  • shell或者exec的环境下执行的命令。RUN指令会在新创建的镜像上添加新的层面,接下来提交的结果用在Dockerfile的下一条指令中。
  • RUN

9-3-3 CMD

  • 支持三种格式
    • CMD ["executable","param1","param2"]  使用 exec 执行,推荐方式; 
    • CMD command param1 param2 在 /bin/sh 中执行,提供给需要交互的应用;
    • CMD ["param1","param2"]  提供给 ENTRYPOINT 的默认参数; 
  • 指定启动容器时执行的命令,每个 Dockerfile 只能有一条 CMD 命令。如果指定了多条命令,只有最后一条会被执行。
  • 如果用户启动容器时候指定了运行的命令,则会覆盖掉 CMD 指定的命令

9-3-4 ENTRYPOINT

  • ENTRYPOINT
  • 两种格式:
    • ENTRYPOINT ["executable", "param1", "param2"]
    • ENTRYPOINT command param1 param2(shell中执行)
  • 配置容器启动后执行的命令,并且不可被 docker run 提供的参数覆盖。
  • 每个 Dockerfile 中只能有一个 ENTRYPOINT,当指定多个时,只有最后一个起效。

9-3-5 EXPOSE

  • 告诉 Docker 服务端容器暴露的端口号,供互联系统使用。在启动容器时需要通过 -PDocker 主机会自动分配一个端口转发到指定的端口。
  • 格式为 EXPOSE [...]

9-3-6 ENV

  • 功能为设置环境变量
  • 语法有两种
    • 1. ENV  一次设置一个
    • 2. ENV = ...   一次设置多个

9-3-7 ADD

  • 一个复制命令,把文件复制到镜像中。并带有自动解压功能。
  • 如果把虚拟机与容器想象成两台linux服务器的话,那么这个命令就类似于scp只是scp需要加用户名和密码的权限验证,而ADD不用。 
  • 语法如下:
    • 1. ADD <src>... <dest>
    • 2. ADD ["<src>",... "<dest>"] 
      • <dest>路径的填写可以是容器内的绝对路径,也可以是相对于工作目录的相对路径
      • <src>可以是一个本地文件或者是一个本地压缩文件,还可以是一个url 
  • 如果<src>写成一个url那么ADD就类似于wget命令;如下写法
    • ADD test relativeDir
    • ADD test /relativeDir
    • ADD http://example.com/foobar /

9-3-8 COPY

  • 复制命令
  • 语法如下:
    • 1. COPY <src>... <dest>
    • 2. COPY ["<src>",... "<dest>"] 
  • <src>与ADD的区别:
    • COPY<src>只能是本地文件,其他用法一致

9-3-9 VOLUME

  • 实现挂载功能,可以将内地文件夹或者其他容器种得文件夹挂在到这个容器种
  • 语法:VOLUME ["/data"]    

9-3-10 USER

  • 格式:USER daemon
  • 指定运行容器时的用户名或 UID,后续的 RUN 也会使用指定用户。
  • 当服务不需要管理员权限时,可以通过该命令指定运行用户。并且可以在之前创建所需要的用户

9-3-11 WORKDIR

  • 语法:WORKDIR /path/to/workdir 
  • 设置工作目录,对RUN,CMD,ENTRYPOINT,COPY,ADD生效。如果不存在则会创建,也可以设置多次。 

9-3-12 ONBUILD

  • 语法:ONBUILD [INSTRUCTION]
  • 这个命令只对当前镜像的子镜像生效。

 

十、Docker 数据卷

在Docker的使用过程中往往需要对数据进行持久化,或者需要在多个容器之间进行数据共享,所以这就涉及到Docker容器的数据操作。

容器中数据管理主要有两种方式 - 数据卷、数据卷容器。:

  • 数据卷(Data Volumes) 容器内数据直接映射到本地宿主机。
  • 数据卷容器(Data Volume Containers) 使用特定容器维护数据卷

Docker 相关技术学习总结_第38张图片

Docker 相关技术学习总结_第39张图片

Docker 相关技术学习总结_第40张图片 Docker数据卷的备份及恢复

10-1 启动时使用数据卷(-v)

十一 、实现复杂的Dockerfile使用,包含数据卷(redis配置)

 打包已安装好redis

 tar -cvf redis-3.2.10.tar  redis-3.2.10

创建目录 用于放dockerfile文件和redis文件

mkdir -p /opt/docfile/redis3

注意:将要上传的软件,必须和dockerfile文件在同一目录下


将打包好的文件,放到新建的指定文件夹内

编写dockfile文件,将指定路径的本地文件上传到容器内

Docker 相关技术学习总结_第41张图片

 Docker 相关技术学习总结_第42张图片

测试基础镜像centos7.5.1804安装redis

启动容器,将本地宿主机/opt目录映射到容器的/data目录
docker run -it --name="centos_redis" -v /opt/:/data centos:7.5.1804  /bin/bash

进入容器内的redis文件的src配置文件夹

执行配置文件夹内的redis-server文件,并后台运行
./redis-server &

若不进行后台运行(&) 则会使得软件夯住
./redis-server

Docker 相关技术学习总结_第43张图片

Docker 相关技术学习总结_第44张图片

书写dockerfile文件
cd /opt/docfile/redis3

vim dockerfile

Docker 相关技术学习总结_第45张图片

Docker 相关技术学习总结_第46张图片

配置redis的配置文件

cd /opt/docfile/redis3/

vim redis.conf

Docker 相关技术学习总结_第47张图片

  • 使用 Dockerfile 生成镜像
    • docker build -t 镜像名:tag

  • 启动生成的镜像 
    • docker run -d -p 本地端口:映射容器端口 --name “镜像别名”  镜像名:tag

Docker 相关技术学习总结_第48张图片

  • 测试:宿主机连接容器内的redis
    • redis-cli 宿主机ip:宿主机端口

Docker 相关技术学习总结_第49张图片

 

十二、Docker 本地私有仓库

12-0 搭建私有仓库

制作私有仓库,存储本地镜像
​
docker run -d -p 5000:5000 --restart=always --name registry -v /opt/Registry:/var/lib/registry  registry

Docker 相关技术学习总结_第50张图片

vim /etc/docker/daemon.json
​
{
   "registry-mirrors": ["https://68rmyzg7.mirror.aliyuncs.com"],
   "insecure-registries": ["10.0.0.100:5000"]
}

Docker 相关技术学习总结_第51张图片

重启容器
systemctl  restart docker

12-1 上传镜像到私有仓库

将镜像打上tag 
[root@docker ~]# docker tag nginx 10.0.0.100:5000/oldguo/nginx:v1
查看镜像
[root@docker ~]# docker images
上传指定镜像
[root@docker ~]# docker push 10.0.0.100:5000/oldguo/nginx:v1

12-2 从私有仓库下载镜像到本地

下载镜像
[root@docker ~]# docker pull  10.0.0.100:5000/oldguo/nginx:v1   
​
查看本地镜像
[root@docker ~]# docker images

Docker 相关技术学习总结_第52张图片

你可能感兴趣的:(Linux)