Docker 学习记录(记录中......)

Posted ltppp

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker 学习记录(记录中......)相关的知识,希望对你有一定的参考价值。

技术图片

概念介绍

使用Docker启动Hello World

常用命令

查看命令清单

直接输入docker或者是docker help 可以查看其所有支持命令的命令清单,如下:

[root@ecs-8fdd-0004 docker]# docker

Usage:	docker [OPTIONS] COMMAND

A self-sufficient runtime for containers

Options:
      --config string      Location of client config files (default "/root/.docker")
  -c, --context string     Name of the context to use to connect to the daemon (overrides DOCKER_HOST env var and default
                           context set with "docker context use")
  -D, --debug              Enable debug mode
  -H, --host list          Daemon socket(s) to connect to
  -l, --log-level string   Set the logging level ("debug"|"info"|"warn"|"error"|"fatal") (default "info")
      --tls                Use TLS; implied by --tlsverify
      --tlscacert string   Trust certs signed only by this CA (default "/root/.docker/ca.pem")
      --tlscert string     Path to TLS certificate file (default "/root/.docker/cert.pem")
      --tlskey string      Path to TLS key file (default "/root/.docker/key.pem")
      --tlsverify          Use TLS and verify the remote
  -v, --version            Print version information and quit

Management Commands:
  builder     Manage builds
  config      Manage Docker configs
  container   Manage containers
  context     Manage contexts
  engine      Manage the docker engine
  image       Manage images
  network     Manage networks
  node        Manage Swarm nodes
  plugin      Manage plugins
  secret      Manage Docker secrets
  service     Manage services

可以看到Docker有很多类型的命令,例如设置docker,管理容器,管理镜像,管理服务等。其中最常用的应该是镜像和容器相关的管理,毕竟是其主要的组件。对于我不熟悉的命令,可以输入docker COMMAND --help 进行查看。

[root@ecs-8fdd-0004 docker]# docker images --help

Usage:	docker images [OPTIONS] [REPOSITORY[:TAG]]

List images

Options:
  -a, --all             Show all images (default hides intermediate images)
      --digests         Show digests
  -f, --filter filter   Filter output based on conditions provided
      --format string   Pretty-print images using a Go template
      --no-trunc        Don‘t truncate output
  -q, --quiet           Only show numeric IDs
[root@ecs-8fdd-0004 docker]# 

镜像常用命令

  • 搜索镜像 docker search name,例如
[root@ecs-8fdd-0004 docker]# docker search JDK
NAME                                 DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
primetoninc/jdk                      Oracle jdk 1.8, 1.7                             18                                      [OK]
ascdc/jdk8                           jdk8                                            9                                       [OK]
codenvy/jdk8_maven3_tomcat8          JDK 8, Maven 3, Tomcat 8                        9                                       [OK]
codenvy/jdk7_tomcat7                 Dockerfile https://github.com/codenvy/docker…   7                                       
kdvolder/jdk8                                                                        7                                       
gmaslowski/jdk                       Oracle JDK8                                     6                                       
ringcentral/jdk                      an alpine Linux image included glibc and Ora…   5                                       
openkbs/jdk-mvn-py3                  Java 8 OpenJDK + Maven  + Python 3+ pip + no…   4                                       [OK]
codenvy/jdk7                         Dockerfile https://github.com/codenvy/docker…   3                                       
codenvy/jdk7_vnc                     Dockerfile https://github.com/codenvy/docker…   3                                       
codenvy/jdk7_jetty9                  Dockerfile https://github.com/codenvy/docker…   2                                       
codenvy/jdk7_jboss7                  Dockerfile https://github.com/codenvy/docker…   2                                       
openkbs/jdk11-mvn-py3                Java JDK 11 + Maven 3 + Python 3 + Gradle 4     2                                       [OK]
andonescu/jdk-8-node-docker-gcp      jdk8 node docker gcp                            1                                       
openkbs/jdk-mvn-py                   Java JDK 8 + Maven 3 + Python 2                 1                                       [OK]
payneteasy/jdk-8                     Java 8 for using with gitlab-ci                 1                                       [OK]
wealthsimple/jdk                                                                     0                                       
ping2ravi/jdk                        All Java/JDK Versions                           0                                       [OK]
guligo/jdk-maven-ant                 Tool stack consisting of Oracle JDK, Maven a…   0                                       [OK]
dwetzel/jdk-ant                      JDK8 + ANT                                      0                                       [OK]
jdk1/php-redis-modified                                                              0                                       
uquote/jdk8-tomee1.7.3-plume         Apache Tomee Plume with Oracle JDK 8 on Cent…   0                                       
infinitenature/jdk                   JDK Images for all jdks jabba supports          0                                       
king019/jdk                          jdk                                             0                                       
ukhydrographicoffice/jdk8-python36   Build image that contains bash, jdk 8 and py…   0  
  • 拉取镜像docker pull [OPTIONS] NAME[:TAG|@DIGEST]
[root@ecs-8fdd-0004 docker]# docker pull primetoninc/jdk
Using default tag: latest
latest: Pulling from primetoninc/jdk
af4b0a2388c6: Pull complete 
af2266c1252d: Pull complete 
f9aa7065ca75: Pull complete 
Digest: sha256:b90a1af755127b4b886b5437b6e5e90cec90c44a1b55f345e30a5fa8552a52c0
Status: Downloaded newer image for primetoninc/jdk:latest
docker.io/primetoninc/jdk:latest
  • 查看单个镜像docker images primetoninc/jdk:latest
[root@ecs-8fdd-0004 docker]# docker images primetoninc/jdk:latest
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
primetoninc/jdk     latest              4f4be6992080        2 years ago         879MB
  • 查看所有镜像docker images
[root@ecs-8fdd-0004 docker]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
hello-world         latest              bf756fb1ae65        6 months ago        13.3kB
primetoninc/jdk     latest              4f4be6992080        2 years ago         879MB
  • 镜像拷贝并重命名docker tag source target
[root@ecs-8fdd-0004 ~]# docker tag hello-world hello-word22
[root@ecs-8fdd-0004 ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
hello-word22        latest              bf756fb1ae65        6 months ago        13.3kB
hello-world         latest              bf756fb1ae65        6 months ago        13.3kB
primetoninc/jdk     latest              4f4be6992080        2 years ago         879MB
  • 基于Dockerfile创建一个新的镜像,利用build命令
  • 删除镜像docker rmi删除镜像前需要先删除使用其的容器
[root@ecs-8fdd-0004 ~]# docker rmi primetoninc/jdk
Untagged: primetoninc/jdk:latest
Untagged: primetoninc/jdk@sha256:b90a1af755127b4b886b5437b6e5e90cec90c44a1b55f345e30a5fa8552a52c0
Deleted: sha256:4f4be6992080a9ec11b730d36ead7a70fd91e40a25e8168cdc1f68f1a7999418
Deleted: sha256:8ff53ceaec631a00a4fb629b693f67b1bd37f59bdd67fb2118356c78991becb0
Deleted: sha256:fa558ae75f601fc7ac6924bbb33bde0c4aa7e0e95d63e4b369e8601dd12464b8
Deleted: sha256:e15afa4858b655f8a5da4c4a41e05b908229f6fab8543434db79207478511ff7
[root@ecs-8fdd-0004 ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
hello-world         latest              bf756fb1ae65        6 months ago        13.3kB
hello-word22        latest              bf756fb1ae65        6 months ago        13.3kB

容器常用命令

  • 运行容器docker run,详细使用如下
-a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;
-d: 后台运行容器,并返回容器ID;
-i: 以交互模式运行容器,通常与 -t 同时使用;
-p: 端口映射,格式为:主机(宿主)端口:容器端口
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
--name="nginx-lb": 为容器指定一个名称;
--dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;
--dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;
-h "mars": 指定容器的hostname;
-e username="ritchie": 设置环境变量;
--env-file=[]: 从指定文件读入环境变量;
--cpuset="0-2" or --cpuset="0,1,2": 绑定容器到指定CPU运行;
-m :设置容器使用内存最大值;
--net="bridge": 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;
--link=[]: 添加链接到另一个容器;
--expose=[]: 开放一个端口或一组端口;
  • 查看容器列表docker ps,可以查看当前运行的容器,如果要查看所有容器加入==-a==
[root@ecs-8fdd-0004 ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                     PORTS               NAMES
38b7be14b0b3        hello-world         "/hello"            8 seconds ago       Exited (0) 7 seconds ago                       elegant_cray
b5baab91d558        hello-world         "/hello"            26 hours ago        Exited (0) 26 hours ago                        elastic_lewin
[root@ecs-8fdd-0004 ~]# 
  • 停止容器docker stop 容器ID
  • 启动容器docker start 容器ID
  • 重启容器docker restart 容器ID
  • 强制停止容器docker kill 容器ID
  • 删除容器docker rm 容器ID
  • 进入容器docker exec -it 容器ID 参数
  • 在容器中创建一个镜像。
# 在制作一些私有镜像时,常常是依赖于一个基础镜像后,然后进入容器中进行相关系统环境的配置,或者相应的优化。但若容器一删除,之前的修改都会没有了。故在这些场景下,可直接从修改后的容器中创建一个自己的私有镜像,这样里面的一些环境和相关优化项还是保留的。

 # docker commit [options] 容器id name:tag
 docker commit 3ba5b7475423 lqdev.cn/redis:1
 参数说明:
-a:提交的镜像作者
-c:使用Dockerfile指令来创建镜像
-m:提交时的说明文字
-p:在commit时,将容器暂停

其他常用命令

  • 查看日志docker logs [OPTIONS] 容器ID
# docker logs [OPTIONS] 容器ID
  docker logs -f 3ba5b7475423
  参数说明:
 -f : 跟踪日志输出
--since :显示某个开始时间的所有日志
 -t : 显示时间戳
--tail :仅列出最新N条容器日志
  • 宿主和容器之间相互拷贝文件docker cp
# docker cp 容器名:要拷贝的文件在容器里面的路径  要拷贝到宿主机的相应路径
# docker cp 要拷贝的文件路径 容器名:要拷贝到容器里面对应的路径
docker cp 3ba5b7475423:/opt/a.json /opt
docker cp /opt/a.json 3ba5b7475423:/opt

Dockerfile的简单介绍

简单理解

通过之前的知识,我们知道Docker可以很容易的拉取镜像,环境等。但是在实际开发中,我们打包会有一系列的配置,还会对各种环境进行优化等等。这时候就需要DockerFile了,使用dockerfile文件我们可以自定义镜像的一些东西。可以理解为一个shell脚本的作用。

介绍

Dockerfile是一个文本文件,里面包含了若干条指令,每条指令描述了构建镜像的细节。简单来说,它就是由一系列指令和参数构成的脚本文件,从而构建出一个新的镜像文件。

例子

这里用Nginx来举例,完成从搜索镜像到最后使用Dockerfile启动镜像这一系列流程来帮助理解。

  • 搜索镜像
[root@ecs-8fdd-0004 Dockerfile]# docker search nginx
NAME                               DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
nginx                              Official build of Nginx.                        13454               [OK]                
jwilder/nginx-proxy                Automated Nginx reverse proxy for docker con…   1837                                    [OK]
richarvey/nginx-php-fpm            Container running Nginx + PHP-FPM capable of…   780                                     [OK]
linuxserver/nginx                  An Nginx container, brought to you by LinuxS…   119                                     
bitnami/nginx                      Bitnami nginx Docker Image                      87                                      [OK]
tiangolo/nginx-rtmp                Docker image with Nginx using the nginx-rtmp…   81                                      [OK]
alfg/nginx-rtmp                    NGINX, nginx-rtmp-module and FFmpeg from sou…   70                                      [OK]
jc21/nginx-proxy-manager           Docker container for managing Nginx proxy ho…   69                                      
nginxdemos/hello                   NGINX webserver that serves a simple page co…   56                                      [OK]
jlesage/nginx-proxy-manager        Docker container for Nginx Proxy Manager        50                                      [OK]
nginx/nginx-ingress                NGINX Ingress Controller for Kubernetes         37                                      
privatebin/nginx-fpm-alpine        PrivateBin running on an Nginx, php-fpm & Al…   29                                      [OK]
schmunk42/nginx-redirect           A very simple container to redirect HTTP tra…   18                                      [OK]
nginxinc/nginx-unprivileged        Unprivileged NGINX Dockerfiles                  16                                      
nginx/nginx-prometheus-exporter    NGINX Prometheus Exporter                       13                                      
centos/nginx-112-centos7           Platform for running nginx 1.12 or building …   13                                      
raulr/nginx-wordpress              Nginx front-end for the official wordpress:f…   13                                      [OK]
centos/nginx-18-centos7            Platform for running nginx 1.8 or building n…   13                                      
mailu/nginx                        Mailu nginx frontend                            7                                       [OK]
sophos/nginx-vts-exporter          Simple server that scrapes Nginx vts stats a…   7                                       [OK]
bitnami/nginx-ingress-controller   Bitnami Docker Image for NGINX Ingress Contr…   6                                       [OK]
bitwarden/nginx                    The Bitwarden nginx web server acting as a r…   6                                       
wodby/nginx                        Generic nginx                                   1                                       [OK]
ansibleplaybookbundle/nginx-apb    An APB to deploy NGINX                          1                                       [OK]
centos/nginx-110-centos7           Platform for running nginx 1.10 or building …   0                                       
  • 拉取镜像,我们直接选择官方的nginx镜像,也就是第一个。
[root@ecs-8fdd-0004 ~]# docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
8559a31e96f4: Pull complete 
1cf27aa8120b: Pull complete 
67d252a8c1e1: Pull complete 
9c2b660fcff6: Pull complete 
4584011f2cd1: Pull complete 
Digest: sha256:a93c8a0b0974c967aebe868a186e5c205f4d3bcb5423a56559f2f9599074bbcd
Status: Downloaded newer image for nginx:latest
docker.io/library/nginx:latest
  • 查看镜像列表
docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              0901fa9da894        13 hours ago        132MB
hello-word22        latest              bf756fb1ae65        6 months ago        13.3kB
hello-world         latest              bf756fb1ae65        6 months ago        13.3kB
  • 运行容器,当前nginx只是一个镜像还未运行
# --name 指定容器名
# -d 后台运行
# -p 指定端口,映射服务器8080端口到容器得80端口
[root@ecs-8fdd-0004 ~]# docker run --name some-nginx -d -p 8080:80 nginx
8bc101d06e476986cd453d3ad490d3d20fed0fe9a95232f031255e49ce094a63
  • 此时去访问你的IP地址:8080,就可以进入Nginx首页了。
  • 查看当前正在运行得容器
[root@ecs-8fdd-0004 ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
ee9f9965a1c1        nginx               "/docker-entrypoint.…"   3 minutes ago       Up 3 minutes        80/tcp              some-nginx
  • 这个流程我们并未使用Dockerfile来操作,而是仅仅执行了一个简单得启动。下面使用Docker来启动nginx
  • 先停止之前得some-nginx容器并删除
docker stop ee9f9965a1c1
docker rm ee9f9965a1c1
  • 按自己习惯,找个文件夹创建Dockerfile文件
[root@ecs-8fdd-0004 Dockerfile]# vi Dockerfile
# FROM 指定基础镜像,即以此镜像作为基础
FROM nginx
# 设置元数据,利用 docker inspect [镜像名称|镜像ID],即可查看。
LABEL author="作者:LtPpp"
LABEL version="版本:v0.1"
LABEL desc="说明:修改nginx首页提示"
# 操作执行,这里直接修改了nginx的html的首页内容,/usr/share/nginx/html
RUN echo ‘Hello,Nginx‘ > /usr/share/nginx/html/index.html
# 启动命令 不写时 会直接使用基础镜像的启动命令 类似 nginx -g daemon off
CMD ["nginx", "-g", "daemon off;"]
  • Dockerfile已经编辑好了,现在就是使用其来构建镜像了。
# 指定新镜像名为nginx:text 后面得.代表在当前地址执行
docker build -t nginx:text .
  • 执行完成后我们查看镜像列表,可以看到nginx:text镜像
[root@ecs-8fdd-0004 Dockerfile]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               text                a38fb0183261        2 minutes ago       132MB
nginx               latest              0901fa9da894        15 hours ago        132MB
hello-word22        latest              bf756fb1ae65        6 months ago        13.3kB
hello-world         latest              bf756fb1ae65        6 months ago        13.3kB
  • 然后我们run 这个镜像
docker run --name some-nginx -d -p 8088:80 nginx:text
  • 启动后,重新输入IP:8080 即可看到修改后得nginx首页

Dockerfile常用命令介绍

使用docker inspect命令,可以查看到镜像元数据
Dockerfile主要分为四个部分基础镜像信息、元数据信息、镜像操作指令、启动执行指令。

  • FROM 指定基础镜像
#语法:
FROM <image> 
FROM <image>:<tag>
FROM <image>:<digest>
  • LABEL 镜像元数据
LABEL desc="说明:修改nginx首页提示"
  • ENV 设置环境变量
ENV <key> <value>
ENV <key>=<value> ...
  • VOLUME 定义匿名卷

VOLUME用于创建挂载点,即向基于所构建镜像创始的容器添加卷:基于所构建镜像创始的容器添加卷
一个卷可以存在于一个或多个容器的指定目录,该目录可以绕过联合文件系统,并具有以下功能:

  • 卷可以容器间共享和重用
  • 容器并不一定要和其它容器共享卷
  • 修改卷后会立即生效
  • 对卷的修改不会对镜像产生影响
  • 卷会一直存在,直到没有任何容器在使用它

VOLUME 让我们可以将源代码、数据或其它内容添加到镜像中,而又不并提交到镜像中,并使我们可以多个容器间共享这些内容。

  • COPY 复制文件
COPY <源路径>... <目标路径>
COPY ["<源路径1>",... "<目标路径>"]
  • ADD 更高级的复制文件

ADD 指令和 COPY 的格式和性质基本一致。但是在 COPY 基础上增加了一些功能。比如<源路径>可以是一个 URL,这种情况下,Docker 引擎会试图去下载这个链接的文件放到<目标路径>去。

  • EXPOSE 设置监听端口,容器运行时会监听该端口
EXPOSE <port> [<port>/<protocol>...]
  • ARG 设置构建参数
ARG <name>[=<default value>]
  • RUN 执行命令,在镜像的构建过程中执行特定的命令,并生成一个中间镜像
RUN <command>
或者
RUN ["executable", "param1", "param2"]

注意:多行命令不要写多个RUN,原因是Dockerfile中每一个指令都会建立一层.多少个RUN就构建了多少层镜像,会造成镜像的臃肿、多层,不仅仅增加了构件部署的时间,还容易出错。

  • CMD 启动时命令,容器启动时要运行的命令,
CMD ["executable","param1","param2"]
CMD ["param1","param2"]
CMD command param1 param2
  • ENTRYPOINT 启动默认命令

ENTRYPOINT 用于给容器配置一个可执行程序。也就是说,每次使用镜像创建容器时,通过 ENTRYPOINT 指定的程序都会被设置为默认程序。ENTRYPOINT 有以下两种形式:

ENTRYPOINT ["executable", "param1", "param2"]
ENTRYPOINT command param1 param2

ENTRYPOINT 与 CMD 非常类似,不同的是通过docker run执行的命令不会覆盖 ENTRYPOINT,而docker run命令中指定的任何参数,都会被当做参数再次传递给ENTRYPOINT。Dockerfile 中只允许有一个 ENTRYPOINT 命令,多指定时会覆盖前面的设置,而只执行最后的ENTRYPOINT 指令。
docker run运行容器时指定的参数都会被传递给ENTRYPOINT,且会覆盖 CMD 命令指定的参数。如,执行docker run image -d时,-d 将被传递给入口点。
也可以通过docker run --entrypoint重写 ENTRYPOINT 入口点。如:可以像下面这样指定一个容器执行程序:

ENTRYPOINT ["nginx"]

可以看到默认启动命令修改为:nginx,执行镜像构建后,我们执行

docker run -p 80:80 -d nginx:text -g "daemon off;"

这时,run命令内的参数 -g "daemon off"将会被传递给ENTRYPOINT,最终执行的启动命令是:nginx -g “deemon off”

  • WORKDIR 指定工作目录
WORKDIR /opt/docker/workdir

通过WORKDIR设置工作目录后,Dockerfile 中其后的命令RUN、CMD、ENTRYPOINT、ADD、COPY等命令都会在该目录下执行。

  • USER 指定当前用户

实际上手

开发的微服务介绍:

第一步:微服务docker化

准备一个不依赖其他项的微服务,例如权限服务。我们要把他打包为一个docker镜像并构建为一个容器来启动。

  • 首先在根目录编写dockerfile
#我们使用jar包运行,首先需要一个JDK的环境。也就是说基础镜像是JDK 
FROM OPENJDK:1.8

  • idea经过配置可以直接选择dockerfile,然后执行这个dockerfile就可以看到构建的镜像以及容器了。

将使用python编写的服务,docker化

RUN 命令:在镜像的构建过程中执行特定的命令,因为Python基础镜像不包含thrift包,所以我们需要使用以下命令构建一个新的python镜像

FROM PYTHON:3.6

RUN pip install thrift # 构建过程中执行pip install thrift 安装thrift包
  • 执行 docker build -t python-base:latest -f Dockerfile.base . 开始构建新的镜像:python-base
  • 开始构建python编写的微服务,编写Dockerfile
FROM python-base:latest

COPY message /message #将本地message复制到容器内根目录,名字为message

ENTRYPOINT ["python",".message/message_service.py"]
  • 开始构建 docker build -t message-service:latest .
  • 运行:docker run -it message-service:latest

依次将所有微服务构建为容器

第二步:微服务通讯

当前问题:docker服务彼此没有通讯,方案
- 直接通讯,通过容器的IP和端口进行通信。(缺点:容器的IP和端口极不稳定,每次重启都可能改变)
- 服务把端口映射出去。然后依赖它的容器去访问主机的IP和端口就行
- 使用docker的link地址,link到一个容器之后,可以直接通过名字去访问他。
解决方案:我们的外部服务,例如mysql,redis这类,使用第二种方式来通讯。对于我们自己开发的微服务,使用第三种方式来通讯。

技术图片
enter description here

技术图片

第三步使用docker compose来描述link关系

  • 关闭命令docker-compose down
  • 启动命令docker-compose up -d
  • 单独重启:docker-compose up -d 服务名
  • 过滤 docker ps|grep user过滤出所有含有user的容器
  • 查看日志 docker logs 容器ID

第四步搭建镜像仓库

顾名思义:就是存放镜像的仓库,分为公有仓库和私有仓库。主要区别是网速和安全性的问题。

hup.docker.com 公有仓库

  1. 需要在dockerhup注册账号
  2. 登录
  3. 左上角有个你的ID,然后就可以上传了
  4. 在服务器上登录docker login
  5. docker tag zookeeper:3.5 imooc/zookeeper:3.5 打标签
  6. dacker push imooc/zookeeper:3.5
  7. dacker pull imooc/zookeeper:3.5 测试是否能拉取
  8. 网页端刷新可看

私有仓库

  1. docker pull registry:2
  2. docker run -d -p 5000:5000 registry:2
  3. docker tag zookeeper:3.5 localhost:5000/zookeeper:3.5
  4. docker push localhost:5000/zookeeper:3.5
    存在的问题:
    1.单台服务器 无法保证失败另一台服务器能接替
    2.没有一个方便查看的界面。不方便。

生成环境现在普遍使用:harbor

  1. git搜索harbor 下载安装包
  2. 解压缩tar -xvf name
  3. 进入到解压后的harbor文件夹cd harbor
  4. 编辑harbor.cfgvi harbor.cfg
  5. 修改一哈hostname:修改为自己想要的域名
  6. ./install.sh

第五步服务编排

1.mesos
2.kubernetes
3.docker swarm

Mesos

技术图片
enter description here

在你的数据中心上运行程序,就像运行在单个的资源池一样。数据中心:多台服务器的集合

Kubernetes

技术图片
enter description here

技术图片
技术图片
技术图片
技术图片
技术图片
技术图片

























以上是关于Docker 学习记录(记录中......)的主要内容,如果未能解决你的问题,请参考以下文章

uCOS-III 学习记录——任务时间片运行

Docker 学习记录

20180503 jq学习记录(jquery操作样式表,时间片,jq对象函数间传递)

Docker学习记录 - 构建私有镜像仓库 - harbor

docker学习记录

在学习docker中记录的一些常用操作