docker 的安装应用与补充

标签(空格分隔): docker的部分


  • 一:Docker概述

  • 二:Docker安装

  • 三:镜像管理

  • 四:容器管理

  • 五:管理应用程序数据

  • 六:容器网络

  • 七:Dockerfile

  • 八:企业级镜像仓库Harbor

一:Docker概述

1.1 Docker是什么

1. 使用最广泛的开源容器引擎
2. 一种操作系统级的虚拟化技术
3. 依赖于Linux内核特性:Namespace(资源隔离)和Cgroups(资源限制)
4. 一个简单的应用程序打包工具

1.2 Docker设计目标

1. 提供简单的应用程序打包工具
2. 开发人员和运维人员职责逻辑分离
3. 多环境保持一致性

1.3 Docker基本组成

1. Docker Client:客户端
2. Ddocker Daemon:守护进程
3. Docker Images:镜像
4. Docker Container:容器
5. Docker Registry:镜像仓库

docker 的安装应用与补充_第1张图片


1.4 容器 VS 虚拟机

docker 的安装应用与补充_第2张图片

docker 的安装应用与补充_第3张图片

1.5 docker的应用场景

1. 应用程序打包和发布
2. 应用程序隔离
3. 持续集成
4. 部署微服务
5. 快速搭建测试环境
6. 提供PaaS产品(平台即服务)

二: Docker的安装

2.1 Docker版本

1. 社区版(Community Edition,CE)
2. 企业版(Enterprise Edition,EE)

2.2 支持平台

1. Linux(CentOS,Debian,Fedora,Oracle Linux,RHEL,SUSE和Ubuntu)
2. Mac
3. Windows

docker 的安装应用与补充_第4张图片


2.3 CentOS7.x安装Docker

提供的官方网址
官方文档:https://docs.docker.com

# 安装依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2
# 添加Docker软件包源
yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 安装Docker CE
yum install -y docker-ce
# 启动Docker服务并设置开机启动
systemctl start docker
systemctl enable docker

docker 的安装应用与补充_第5张图片

docker 的安装应用与补充_第6张图片

docker 的安装应用与补充_第7张图片


三: docker 的 镜像管理

3.1 镜像是什么

镜像是什么?
1. 一个分层存储的文件
2. 一个软件的环境
3. 一个镜像可以创建N个容器
4. 一种标准化的交付
5. 一个不包含Linux内核而又精简的Linux操作系统
镜像不是一个单一的文件,而是有多层构成。我们可以通过docker history  查看镜像中各层内容及大小,每层
对应着Dockerfile中的一条指令。Docker镜像默认存储在/var/lib/docker/\中。

镜像从哪里来?
Docker Hub是由Docker公司负责维护的公共注册中心,包含大量的容器镜像,Docker工具默认从这个公共镜像库下载镜像。
地址:https://hub.docker.com/explore

配置镜像加速器:https://www.daocloud.io/mirror

curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io

docker 的安装应用与补充_第8张图片


3.2 镜像与容器联系

如下图,容器其实是在镜像的最上面加了一层读写层,在运行容器里文件改动时,
会先从镜像里要写的文件复制到容器自己的文件系统中(读写层)。
如果容器删除了,最上面的读写层也就删除了,改动也就丢失了。所以无论多
少个容器共享一个镜像,所做的写操作都是从镜像的文件系统中复制过来操作
的,并不会修改镜像的源文件,这种方式提高磁盘利用率。
若想持久化这些改动,可以通过docker commit 将容器保存成一个新镜像。

docker 的安装应用与补充_第9张图片

3.3 管理镜像常用命令

docker 的安装应用与补充_第10张图片


docker info
列出当前的docker 的版本

docker 的安装应用与补充_第11张图片

去这里 下载:
https://download.openvz.org/template/precreated/
cat centos-6-x86_64-minimal.tar.gz |docker import - centos:6.0 ## 创建镜像
cat centos-7-x86_64-minimal.tar.gz |docker import - centos:7.0
cat ubuntu-16.04-x86_64.tar.gz |docker import - ubuntu:16.04

另一个种方法:

docker pull nginx:1.15

docker history nignx:1.15

这个分层的下载的

docker 的安装应用与补充_第12张图片

docker 的安装应用与补充_第13张图片


创建一个容器:
docker run -itd --name nginx-test -p 8080:80 nignx:1.15

docker ps -l 

进入一个容器

docker exec -ti 1e9515c8c966 /bin/bash

docker 的安装应用与补充_第14张图片

docker 的安装应用与补充_第15张图片

docker commit 1e9515c8c966 nginx-test:v1  提交容器到本地仓库

docker 的安装应用与补充_第16张图片

docker image nginx-test:v1 > nginx-test.tar  导出一个镜像

docker 的安装应用与补充_第17张图片


docker image rm nginx-test:v1 删掉一个镜像

docker 的安装应用与补充_第18张图片

docker load -i nginx-test.tar 导入一个镜像

docker 的安装应用与补充_第19张图片


docker tag nginx-test:v1 node04.flyfish/nginx/myapp:v1 给镜像打个标签方便提交到私有仓库

docker images 

docker 的安装应用与补充_第20张图片

四: 容器管理

4.1 创建容器常用选项

docker 的安装应用与补充_第21张图片

进入一个容器: 

docker pull httpd 
docker run -tid --name httpd-test -p 4040:80 httpd

docker ps -l 

docker 的安装应用与补充_第22张图片


进入这个容器

docker ps -l

docker exec -ti a30f616852a1 /bin/bash 

image_1e5jt0v6p1v7s59h1hl7kg4132v5o.png-57.4kB

docker 的安装应用与补充_第23张图片

docker run -tid --name centos7-test centos:7.0:v1 /bin/bash
docker ps -a 

image_1e5jtealn1834186f9c0i9utnlm.png-36.6kB

image_1e5jtdnd018tpp231mi2div14mt9.png-71.6kB

docker 的安装应用与补充_第24张图片


docker run -tid --name nginx1-test1 -p 6060:80 --restart always nginx:1.15
开机自启动 容器 (默认是docker 启动 容器是不启动的)

docker 的安装应用与补充_第25张图片

docker 的安装应用与补充_第26张图片


docker run -tid --name nginx2-test2 -p 7070:80 -e flyfish=zhangyy -h nginx-web --restart always nginx:1.15 

指定 容器的 hostname 名称 与 制定 环境变量 并设置开机自启动

docker 的安装应用与补充_第27张图片

查看日志

docker logs 8ea2c0ae169a -f 

docker 的安装应用与补充_第28张图片

docker 的安装应用与补充_第29张图片


4.2 容器的资源限制

docker 的安装应用与补充_第30张图片

示例:
内存限额:
允许容器最多使用500M内存和100M的Swap,并禁用 OOM Killer:
docker run -d --name nginx03 --memory 500m --memory-swap 600M --oom-kill-disable nginx:1.15

docker stats f50b08998e87

docker 的安装应用与补充_第31张图片

docker 的安装应用与补充_第32张图片

CPU限额:
允许容器最多使用一个半的CPU:
docker run -d --name nginx04 --cpus="1.5" nginx:1.15

docker stats 79b51c9d4eee

docker 的安装应用与补充_第33张图片

docker 的安装应用与补充_第34张图片

允许容器最多使用50%的CPU:
docker run -d --name nginx05 --cpus=".5" nginx:1.15

docker stats e70a483d0519

docker 的安装应用与补充_第35张图片

docker 的安装应用与补充_第36张图片

4.3 管理容器常用命令

docker 的安装应用与补充_第37张图片

查看容器

docker container ls

docker ps -a 

docker 的安装应用与补充_第38张图片


进入容器执行命令:

docker exec -ti e70a483d0519 /bin/bash

docker exec e70a483d0519 ls

docker 的安装应用与补充_第39张图片


提交容器:
docker commit e70a483d0519 nginx05:v1

docker images 

docker 的安装应用与补充_第40张图片


文件拷贝到容器中

docker cp nginx-test.tar e70a483d0519:/
docker exec e70a483d0519 ls

docker 的安装应用与补充_第41张图片


docker logs -f 8ea2c0ae169a

docker 的安装应用与补充_第42张图片

查看容器的映射对外端口:

docker port 8ea2c0ae169a

docker 的安装应用与补充_第43张图片

查看当前容器运行的主进程

docker top 8ea2c0ae169a

查看容器的是使用的资源 
docker stats 8ea2c0ae169a --no-stream

image_1e5k2btsfiic1nsd1trjiao1lv45v.png-57.9kB


删除容器:

docker rm e70a483d0519

docker 的安装应用与补充_第44张图片


五:管理应用程序数据

5.1 将数据从宿主机挂载到容器中的三种方式

Docker提供三种方式将数据从宿主机挂载到容器中:

• volumes:Docker管理宿主机文件系统的一部分(/var/lib/docker/volumes)。保存数据的最佳方式。

• bind mounts:将宿主机上的任意位置的文件或者目录挂载到容器中。

• tmpfs:挂载存储在主机系统的内存中,而不会写入主机的文件系统。如果不希望将数据持久存储在任何位置,可以使用tmpfs,同时避免写入容器可写层提高性能。

docker 的安装应用与补充_第45张图片

5.2 Volume

管理卷:
# docker volume create nginx-vol
# docker volume ls
# docker volume inspect nginx-vol
用卷创建一个容器:
# docker run -d --name=nginx3-test3 --mount src=nginx-vol,dst=/usr/share/nginx/html nginx:1.15

# docker run -d --name=nginx3-test3 -v nginx-vol:/usr/share/nginx/html nginx1.15
清理:
# docker stop nginx3-test3
# docker rm nginx3-test3
# docker volume rm nginx-vol

注意:
1. 如果没有指定卷,自动创建。
2. 建议使用--mount,更通用。

docker 的安装应用与补充_第46张图片

image_1e5k3jrlg15mu1teo8lvqtl1jqk7j.png-42.7kB

docker 的安装应用与补充_第47张图片

docker 的安装应用与补充_第48张图片

docker 的安装应用与补充_第49张图片

docker 的安装应用与补充_第50张图片


5.3 Bind Mounts

用卷创建一个容器:
# docker run -d -it --name=nginx4-test4 --mount type=bind,src=/app/wwwroot,dst=/usr/share/nginx/html nginx:1.15
# docker run -d -it --name=nginx4-test4 -v /app/wwwroot:/usr/share/nginx/html nginx:1.15
验证绑定:
# docker inspect nginx4-test4
清理:
# docker stop nginx4-test4
# docker rm nginx4-test4

注意:
1. 如果源文件/目录没有存在,不会自动创建,会抛出一个错误。
2. 如果挂载目标在容器中非空目录,则该目录现有内容将被隐藏。

docker 的安装应用与补充_第51张图片

docker 的安装应用与补充_第52张图片

docker 的安装应用与补充_第53张图片

docker 的安装应用与补充_第54张图片


5.4 小结

Volume特点:
• 多个运行容器之间共享数据。
• 当容器停止或被移除时,该卷依然存在。
• 多个容器可以同时挂载相同的卷。
• 当明确删除卷时,卷才会被删除。
• 将容器的数据存储在远程主机或其他存储上
• 将数据从一台Docker主机迁移到另一台时,先停止容器,然后备份卷的目录(/var/lib/docker/volumes/)

---

Bind Mounts特点:
• 从主机共享配置文件到容器。默认情况下,挂载主机/etc/resolv.conf到每个容器,提供DNS解析。
• 在Docker主机上的开发环境和容器之间共享源代码。例如,可以将Maven target目录挂载到容器中,每次在Docker主机
上构建Maven项目时,容器都可以访问构建的项目包。
• 当Docker主机的文件或目录结构保证与容器所需的绑定挂载一致时

六 docker 的网络模式

6.1 网络模式

• bridge
–net=bridge
默认网络,Docker启动后创建一个docker0网桥,默认创建的容器也是添加到这个网桥

docker 的安装应用与补充_第55张图片

docker 的安装应用与补充_第56张图片

• host
–net=host
容器不会获得一个独立的network namespace,而是与宿主机共用一个。这就意味着容器不会有自己的网卡信息,而是使用宿主机的。容器除了网络,其他都是隔离的。
docker run -tid --net=host busybox
docker exec -ti 59a38da6c947 sh

与 宿主机共享一个网络

docker 的安装应用与补充_第57张图片


• none
–net=none
获取独立的network namespace,但不为容器进行任何网络配置,需要我们手动配置。

docker 的安装应用与补充_第58张图片

• container
–net=container:Name/ID
与指定的容器使用同一个network namespace,具有同样的网络配置信息,两个容器除了网络,其他都还是隔离的。

docker run -tid --net=container:nginx04 busybox  

docker exec -ti 4d141b2cb971 /bin/bash

docker inspect 79b51c9d4eee

和nginx04 公用一个IP地址

docker 的安装应用与补充_第59张图片

docker 的安装应用与补充_第60张图片

docker 的安装应用与补充_第61张图片

• 自定义网络
与默认的bridge原理一样,但自定义网络具备内部DNS发现,可以通过容器名或者主机名容器之间网络通信。

docker network create test-nt
docker run -ti --net=test-nt --name bs11 busybox
在开一个终端:
docker run -ti --net=test-nt --name bs12 busybox

docker 的安装应用与补充_第62张图片

docker 的安装应用与补充_第63张图片


6.3 容器网络访问原理

docker 的安装应用与补充_第64张图片

docker 的安装应用与补充_第65张图片


七:Dockerfile

7.1 Dockerfile格式

vim test.yaml 
---
FROM centos7.0:v1
MAINTAINER flyfish
RUN yum install gcc -y
COPY run.sh /usr/bin
EXPOSE 80
CMD [“run.sh”]
---

7.2 Dockerfile指令

docker 的安装应用与补充_第66张图片

Build镜像
----
Usage: docker build [OPTIONS] PATH | URL | - [flags]
Options:
-t, --tag list # 镜像名称
-f, --file string # 指定Dockerfile文件位置
# docker build .
# docker build -t shykes/myapp .
# docker build -t shykes/myapp -f /path/Dockerfile /path
# docker build -t shykes/myapp http://www.example.com/Dockerfile

示例: 

touch index.html 

echo 11111 > index.html

vim Dockerfile 
---
FROM centos7.0:v1
MAINTAINER flyfish
RUN yum install -y httpd
COPY index.html /var/www/html
ENV HTTP_V=2.0
EXPOSE 80
WORKDIR /tmp
CMD ["httpd","-D","FOREGROUND"]
---

docker build -t httpd:v1 -f Dockerfile .

docker images 

docker 的安装应用与补充_第67张图片

docker 的安装应用与补充_第68张图片

docker 的安装应用与补充_第69张图片

docker 的安装应用与补充_第70张图片


构建一个nginx 镜像:

mkdir nginx

cd nginx

vim Docker-nginx
----
FROM centos:7
MAINTAINER flyfish 
RUN yum install -y gcc gcc-c++ make \
    openssl-devel pcre-devel gd-devel \
    iproute net-tools telnet wget curl && \
    yum clean all && \
    rm -rf /var/cache/yum/*
RUN wget http://nginx.org/download/nginx-1.15.5.tar.gz && \
    tar zxf nginx-1.15.5.tar.gz && \
    cd nginx-1.15.5 && \
    ./configure --prefix=/usr/local/nginx \
    --with-http_ssl_module \
    --with-http_stub_status_module && \
    make -j 4 && make install && \
    rm -rf /usr/local/nginx/html/* && \
    echo "ok" >> /usr/local/nginx/html/status.html && \
    cd / && rm -rf nginx-1.15.5* && \
    ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

ENV PATH $PATH:/usr/local/nginx/sbin
#COPY nginx.conf /usr/local/nginx/conf/nginx.conf
WORKDIR /usr/local/nginx
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
----

docker build -t nginx:v1 -f Dockerfile .
docker images 

docker 的安装应用与补充_第71张图片

docker 的安装应用与补充_第72张图片

测试:

docker run -tid --name nginx1.15-test1 nginx:v1 /bin/bash

image_1e5knm07ueneqrf14v86pu1kak2n.png-82.8kB

docker 的安装应用与补充_第73张图片

docker 的安装应用与补充_第74张图片


构建一个php的镜像

mkdir php 
mv Dockerfile-php php-fpm.conf php.ini php

---
FROM centos:7
MAINTAINER flyfish
RUN yum install epel-release -y && \
    yum install -y gcc gcc-c++ make gd-devel libxml2-devel \
    libcurl-devel libjpeg-devel libpng-devel openssl-devel \
    libmcrypt-devel libxslt-devel libtidy-devel autoconf \
    iproute net-tools telnet wget curl && \
    yum clean all && \
    rm -rf /var/cache/yum/*

RUN wget http://docs.php.net/distributions/php-5.6.36.tar.gz && \
    tar zxf php-5.6.36.tar.gz && \
    cd php-5.6.36 && \
    ./configure --prefix=/usr/local/php \
    --with-config-file-path=/usr/local/php/etc \
    --enable-fpm --enable-opcache \
    --with-mysql --with-mysqli --with-pdo-mysql \
    --with-openssl --with-zlib --with-curl --with-gd \
    --with-jpeg-dir --with-png-dir --with-freetype-dir \
    --enable-mbstring --with-mcrypt --enable-hash && \
    make -j 4 && make install && \
    cp php.ini-production /usr/local/php/etc/php.ini && \
    cp sapi/fpm/php-fpm.conf /usr/local/php/etc/php-fpm.conf && \
    sed -i "90a \daemonize = no" /usr/local/php/etc/php-fpm.conf && \
    mkdir /usr/local/php/log && \
    cd / && rm -rf php* && \
    ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

ENV PATH $PATH:/usr/local/php/sbin
COPY php.ini /usr/local/php/etc/
COPY php-fpm.conf /usr/local/php/etc/
WORKDIR /usr/local/php
EXPOSE 9000
CMD ["php-fpm"]

----

docker build -t php:v1 -f Dockerfile .

docker images |grep php

docker 的安装应用与补充_第75张图片

image_1e5kqbm9ti1gjm647g1v6br2f4b.png-41kB


7.3 快速部署LNMP网站平台

image_1e5kqeqc41shk196ll17hk81n044o.png-62.8kB

1、自定义网络
docker network create lnmp
2、创建Mysql容器
docker run -d \
--name lnmp_mysql \
--net lnmp \
--mount src=mysql-vol,dst=/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=wordpress mysql:5.7 --character-set-server=utf8
3、创建PHP容器
docker run -d --name lnmp_php --net lnmp --mount src=wwwroot,dst=/wwwroot php:v1
4、创建Nginx容器
docker run -d --name lnmp_nginx --net lnmp -p 88:80 \
--mount src=wwwroot,dst=/wwwroot nginx:v1
5、以wordpress博客为例
https://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz

docker 的安装应用与补充_第76张图片

docker 的安装应用与补充_第77张图片

docker 的安装应用与补充_第78张图片

docker 的安装应用与补充_第79张图片

cd /var/lib/docker/volume/wwwroot/_data/

vim test.php
---


---

docker 的安装应用与补充_第80张图片

wget https://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz
tar -zxvf wordpress-4.9.4-zh_CN.tar.gz

image_1e5ks32nr1v4b1tp51mue2k2j2k9.png-39.8kB

http://ip:88/wordpress/

docker 的安装应用与补充_第81张图片

docker 的安装应用与补充_第82张图片

docker 的安装应用与补充_第83张图片

docker 的安装应用与补充_第84张图片

docker 的安装应用与补充_第85张图片

7.4 构建一个tomcat 项目

FROM centos:7
MAINTAINER flyfish

ENV VERSION=8.5.54

RUN yum install java-1.8.0-openjdk wget curl unzip iproute net-tools -y && \
    yum clean all && \
    rm -rf /var/cache/yum/*

RUN wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v${VERSION}/bin/apache-tomcat-${VERSION}.tar.gz && \
#RUN wget http://192.168.31.211/apache-tomcat-${VERSION}.tar.gz && \
    tar zxf apache-tomcat-${VERSION}.tar.gz && \
    mv apache-tomcat-${VERSION} /usr/local/tomcat && \
    rm -rf apache-tomcat-${VERSION}.tar.gz /usr/local/tomcat/webapps/* && \
    mkdir /usr/local/tomcat/webapps/test && \
    echo "ok" > /usr/local/tomcat/webapps/test/status.html && \
    sed -i '1a JAVA_OPTS="-Djava.security.egd=file:/dev/./urandom"' /usr/local/tomcat/bin/catalina.sh && \
    ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

ENV PATH $PATH:/usr/local/tomcat/bin

WORKDIR /usr/local/tomcat

EXPOSE 8080
CMD ["catalina.sh", "run"]

docker 的安装应用与补充_第86张图片

docker 的安装应用与补充_第87张图片


基于镜像 tomcat:v1 镜像 构建一个jenkins 部署 镜像
vim Dockerfile-jenkis
---
FROM tomcat:v1 
COPY jenkins.war /usr/local/tomcat/webapps/ROOT.war
---

docker build -t tomcat-jenkins:v1 -f Dockerfile-jenkins .

docker 的安装应用与补充_第88张图片

使用tomcat-jenkins:v1 构建一个jenkins的项目

docker run -tid --name jenkins-test -p 8080:8080 --restart always -h jenkins tomcat-jenkins:v1

image_1e5m3cf27bph1qpnrob1ubf1r5b2q.png-88.8kB

docker 的安装应用与补充_第89张图片

docker 的安装应用与补充_第90张图片


密码:
docker exec -ti e0edd5f81092 cat /root/.jenkins/secrets/initialAdminPassword
---
67f0ce7c72dd4fca83f8f6d047fb46de
---

下面安装就可以了

docker 的安装应用与补充_第91张图片

八 构建企业仓库vmware harbor

8.1 Harbor概述

Habor是由VMWare公司开源的容器镜像仓库。事实上,Habor是在Docker Registry上进行了相应的
企业级扩展,从而获得了更加广泛的应用,这些新的企业级特性包括:管理用户界面,基于角色的访
问控制 ,AD/LDAP集成以及审计日志等,足以满足基本企业需求。

官方地址:https://vmware.github.io/harbor/cn/

docker 的安装应用与补充_第92张图片

8.2 Harbor安装有3种方式:

• 在线安装:从Docker Hub下载Harbor相关镜像,因此安装软件包非常小
• 离线安装:安装包包含部署的相关镜像,因此安装包比较大
• OVA安装程序:当用户具有vCenter环境时,使用此安装程序,在部署OVA后启动Harbor

8.3 安装 vmware harbor

8.3.1 安装docker-compose

在node06.flyfish 主机上面部署

首先要安装docker 

然后 安装 安装docker-compose

sudo curl -L "https://github.com/docker/compose/releases/download/1.25.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

chmod +x /usr/local/bin/docker-compose

image_1e5m4dp8ncsbbsc1h2m1rg81bbi4e.png-132.6kB

docker 的安装应用与补充_第93张图片

# tar zxvf harbor-offline-installer-v1.5.1.tgz
# cd harbor
# vi harbor.cfg
hostname = 192.168.100.16
ui_url_protocol = http
harbor_admin_password = 12345
# ./prepare
# ./install.sh

docker 的安装应用与补充_第94张图片

docker 的安装应用与补充_第95张图片

docker 的安装应用与补充_第96张图片

docker 的安装应用与补充_第97张图片

docker 的安装应用与补充_第98张图片

docker 的安装应用与补充_第99张图片

docker 的安装应用与补充_第100张图片

docker 的安装应用与补充_第101张图片

默认用户名:admin 

密码: 12345

docker 的安装应用与补充_第102张图片

创建用户 flyfish 
密码:Flyfish123

docker 的安装应用与补充_第103张图片

libary 添加成员 flyfish

docker 的安装应用与补充_第104张图片

docker 的安装应用与补充_第105张图片


8.3.2 配置http镜像仓库可信任

# vi /etc/docker/daemon.json
{"insecure-registries":["192.168.100.16"]}
# systemctl restart docker

docker 的安装应用与补充_第106张图片

docker 的安装应用与补充_第107张图片

登录镜像仓库:
docker login http://192.168.100.16
用户名:flyfish
密码:Flyfish123

docker 的安装应用与补充_第108张图片

为镜像打一个tag
默认镜像的提交模式是:
docker tag SOURCE_IMAGE[:TAG] 192.168.100.16/library/IMAGE[:TAG]
提交模式:
docker push 192.168.100.16/library/IMAGE[:TAG]

----
将tomcat:v1 nginx:v1 php:v1 tomcat-jenkins:v1 的 镜像提交到仓库中:

docker tag tomcat:v1 192.168.100.16/library/tomcat:v1
docker tag nginx:v1 192.168.100.16/library/nginx:v1
docker tag php:v1 192.168.100.16/library/php:v1
docker tag tomcat-jenkins:v1 192.168.100.16/library/tomcat-jenkins:v1
-----
上传镜像

docker push 192.168.100.16/library/tomcat:v1

docker push 192.168.100.16/library/nginx:v1

docker push 192.168.100.16/library/php:v1

docker push 192.168.100.16/library/tomcat-jenkins:v1

image_1e5m6si7bp05vr118svceb51ubo.png-58.8kB

image_1e5m6nfh84qa179f1bvd1ls1li2bb.png-35.8kB

docker 的安装应用与补充_第109张图片

docker 的安装应用与补充_第110张图片

docker 的安装应用与补充_第111张图片