学神IT linux云计算集群架构师课程

新建自定义容器

  demo1:自定义一个centos
  

学神IT linux云计算集群架构师课程

[[email protected] ~]# docker images
docker.io/centos    latest              1e1148e4cc2c        2 weeks ago         202 MB
[[email protected] /]# cd /usr
[[email protected] usr]# mkdir temp
[[email protected] usr]# cd temp
[[email protected] temp]# touch a.txt
[[email protected] temp]# echo "Hello World" >> a.txt
[[email protected] usr]# exit 
exit
[[email protected] ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                      PORTS               NAMES
0b57154731ca        centos              "bash"                   12 minutes ago      Exited (0) 23 seconds ago 
[[email protected] ~]# docker commit 0b57154731ca jia/centos:1.0
sha256:c306d0695abefd2e37859f7eaff92e9b20833e650b334ae4d1fa0d1de32f08ea
[[email protected] ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
jia/centos          1.0                 c306d0695abe        12 seconds ago      325 MB
docker.io/centos    latest              1e1148e4cc2c        2 weeks ago         202 MB
[[email protected] ~]# docker run -it jia/centos:1.0 bash
[[email protected] /]# ls
anaconda-post.log  bin  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
[[email protected] /]# cd usr
[[email protected] usr]# cd temp
[[email protected] temp]# cat a.txt
Hello World

学神IT linux云计算集群架构师课程

  demo2:(以删除tomcat doc文档为列子)

  环境:先启动tomcat(阿里),通过attach命令进入内部容器,删除doc文件

学神IT linux云计算集群架构师课程

[[email protected] ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                    NAMES
1b58d5c68b21        tomcat              "catalina.sh run"   11 seconds ago      Up 10 seconds       0.0.0.0:8888->8080/tcp   inspiring_easley
[[email protected] ~]# docker commit -a="jiaxianseng" -m="tomcat without docs" 1b58d5c68b21 bogon/usr/java:1.2  #提交容器副本使之成为一个新的镜像
sha256:3280223284dbf4b2e2bc60648116e9e5f6c22bb10b50c698f9467133f9806270
[[email protected] ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
bogon/usr/java      1.2                 3280223284db        23 seconds ago      475 MB
docker.io/tomcat    latest              48dd385504b1        8 days ago          475 MB
docker.io/centos    latest              1e1148e4cc2c        10 days ago         202 MB
[[email protected] ~]# docker run -it -p 7777:8080  bogon/usr/java:1.2

学神IT linux云计算集群架构师课程

2、Dockerfile形式创建镜像
  1.1) Dockerfile是之创建一个命名为Dockerfile文本,该文本定义了对自定义容器的操作,具体操作演示如下

[[email protected] temp]# pwd
/usr/java/temp
[[email protected] temp]# vim Dockerfile

  1.2)定义的内容如下

From centos:7
COPY test1.txt /usr/java/temp/
COPY test2.txt /usr/java/temp/

  1.3) 表示创建镜像并将宿主机的指定的目录内(根据创建镜像指定的路径下)的test1.txt与test2.txt拷贝到创建的镜像中

学神IT linux云计算集群架构师课程

[[email protected] temp]# echo "Hello" >>test1.txt
[[email protected] temp]# echo "JIA" >>test2.txt
[[email protected] temp]# docker build -t jia/demo:1.1 .
[[email protected] temp]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
jia/demo            1.1                 028625c703b5        6 seconds ago       202 MB
[[email protected] temp]# docker run -it jia/demo:1.1 bash
[[email protected] /]# cd /usr
[[email protected] usr]# cd java/temp
[[email protected] temp]# ll
total 8
-rw-r--r--. 1 root root 6 Dec 23 04:24 test1.txt
-rw-r--r--. 1 root root 4 Dec 23 04:24 test2.txt
[[email protected] temp]# more test1.txt
Hello

学神IT linux云计算集群架构师课程

2) Dockerfile命令

  2.1)COPY

  COPY指令从build上下文复制文件或者文件夹到容器文件系统

  2.2) ADD指令

  ADD指令不但可以复制文件到容器文件系统,而且可以从头internet下载文件并复制到容器

  ADD指令可以自动加压压缩文件

  通常用COPY指令,除非明确需要ADD指令

2) Dockerf缓存

 没次Docker执行一次指令将创建新的镜像,如果下一次指令没有变化,Docker将使用现有的缓存

 使用Dockerfile创建镜像,如果第二次创建使用的Dockerfile没有变化,就会使用第一次创建的缓存

 如:

学神IT linux云计算集群架构师课程

[[email protected] temp]# docker build -t jia/demo:1.4 .
Sending build context to Docker daemon 4.096 kB
Step 1/3 : FROM centos:7
 ---> 1e1148e4cc2c
Step 2/3 : COPY test1.txt /usr/java/temp/
 ---> Using cache
 ---> 8ca728ac64eb
Step 3/3 : COPY test2.txt /usr/java/temp/
 ---> Using cache
 ---> 6b77462c1a84
Successfully built 6b77462c1a84

学神IT linux云计算集群架构师课程

3) docker缓存所带来的问题

  之前:

Before:
From centos:7
RUN yum update -y
RUN yum install -y git

  之后

After:
FROM centos:7
RUN yum update -y
RUM yum install -y git curl

  有可能第一次yum是老版本,第二次则会利用缓存,下载下的不是最新的git版本

  解决:

  3.1)  链式输入命令

FROM centos:7
RUN yum update -y && yum install -y git curl

  3.2) 指定-no-cache选项

docker build -t jia/centos . --no-cache=true

十、Docker 容器数据卷

1、介绍
  Docker容器产生的数据,如果不通过docker commit生成新的镜像,使得数据作为镜像的一部分保存下来,那么当容器删除后,数据自然就没有了,为了保存数据在docker中可以使用数据卷(相当于将数据持久化:宿主主机与容器之间的数据共享)

  卷就是目录或文件,存在与一个或多个容器中,由docker挂在到容器,但不属于联合文件系统,因此能绕过Union File System提供一些用于持续存储或共享数据的特性:

  卷设计目的就是数据持久化,完全独立于容器的生存周期,因此Docker不会再容器删除时删除其挂载的数据卷

  特点:

  1)、数据卷可以在容器之间共享或重用数据

  2)、卷中的更改可以直接生效

  3)、数据卷中的更改不会包含在镜像的更新中

  4)、数据卷的生命周期一直持续到没有容器使用它为止

2、直接命令添加

  1) docker run -it -v /宿主机绝对路径目录:/容器内目录 镜像名

      意思是容器与宿主机各建立一个共享文件夹,双方数据能实现同步

[[email protected] java]# docker run -it -v /usr/java/data:/containerdata centos   

  此时宿主机会出现data文件夹,容器根目录会出现containerdata文件夹,宿主机在data文件夹新建的文件container文件夹会即使响应(即使容器关闭),相反同理

  2) 待权限:docker run -it -v /宿主机绝对路径目录:/容器内目录:ro 镜像名

[[email protected] java]# docker run -it -v /usr/java/data:/containerdata:ro centos

  此时宿主机新建的文件容器响应后只有读的权限

3、使用DockerFile添加数据卷

  步骤:

    1)、根目录下新建mydocker文件夹并进入

    2)、可在Dockerfile中使用VOLUME指令来给镜像添加一个或多个数据卷

    3)、File构建

    4)、build后生成镜像--获得一个新的镜像

    5)、run容器

  3.1)、现在宿主机根目录下新建mydocker文件夹,并在该目录下新建文夹Dockerfile,使用VLUME指令给镜像添加一个或多个数据卷

# volume test
FROM centos
VOLUME ["/dataVolumeContainer1","/dataVolumeContainer2"]
CMD echo "finished,--------success"
CMD /bin/bash

  3.2)、使用build生成镜像

[[email protected] mydocker]# docker build /mydocker/Dockerfile -t jia/centos . #注意:要加个“.”

  3.3)、运行镜像生成容器,在容器中新建的内容,可以用inspect命令查看到到它与宿主机映射同步的文件

4、数据卷容器

    定义:
  数据卷容器即命名的容器挂在数据卷,其他容器通过挂载这个(父容器)实现数据共享,挂载数据卷的容器称之为数据卷容器,即容器键传递共享

  demo:新建容器1,利用上面build的环境镜像

学神IT linux云计算集群架构师课程

[[email protected] mydocker]# docker run -it --name dc01 jia/centos
[[email protected]522bf1e /]# cd dataVolumeContainer2
[[email protected] dataVolumeContainer2]# touch dc01_add.txt
[[email protected] dataVolumeContainer2]# [[email protected] mydocker]#   #ctr+p+q 退出不关闭
[[email protected] mydocker]# docker run -it --name dc02 --volumes-from dc01 jia/centos   #创建dc02并集成dc01
[[email protected] /]# cd dataVolumeContainer2
[[email protected] dataVolumeContainer2]# ll
total 0
-rw-r--r--. 1 root root 0 Dec 16 12:55 dc01_add.txt                  #此时容器dc02也有dc01_add.txt

学神IT linux云计算集群架构师课程

十一、安装mysql  

 1、拉取镜像

[[email protected] /]# docker pull mysql:5.6

 2、运行镜像

1

[[email protected] /]# docker run -p 3307:3306 --name mysql01 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6

 3、客户端链接

 学神IT linux云计算集群架构师课程

4、数据备份
   将mysql中创建的表格数据备份到宿主机上

学神IT linux云计算集群架构师课程

[[email protected] ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
bac8a9ba01b7        mysql:5.6           "docker-entrypoint..."   2 minutes ago       Up 2 minutes        0.0.0.0:3307->3306/tcp   mysql
[[email protected] ~]# docker exec bac8a9ba01b7 sh -c 'exec mysqldump --all-databases -uroot -p"123456"' > /usr/java/all-databases.sql
Warning: Using a password on the command line interface can be insecure.
[[email protected] ~]# cd /usr/java
[[email protected] java]# ll
总用量 1
-rw-r--r--.  1 root   root   3321119 12月 16 21:52 all-databases.sql

学神IT linux云计算集群架构师课程

 注意:--all-databases是备份所有库数据,如果是备份指定库的名字

十二、安装redis

  1、拉取 镜像

[[email protected] java]# docker pull redis

  2、运行镜像

[[email protected] java]# docker run -p 6379:6379 -v /usr/java/redisdata/data:/data -v /usr/java/redisdata/conf/redis.conf:/usr/local/etc/redis/redis.conf -d redis redis-server /usr/local/etc/redis/redis.conf --appendonly yes

  3、在宿主机的指定文件夹(这里是/usr/java/redisdata/conf/redis.conf)目录下,拷贝一份redis.conf于该目录,则通过 操作此配置文件来操作容器中的配置

   4、利用redis-cli命令启动

[[email protected] java]# docker exec -it fd0d53df30a3 redis-cli

十三、本地镜像推送至阿里云

  镜像的生成方法:1、DockerFile 2、从容器创建一个新的镜像 docker commit

  1、将指定镜像推送到本地

学神IT linux云计算集群架构师课程

[[email protected] java]# docker run -it centos  #假如以centos为列子
[[email protected] /]# pwd
/
[[email protected] /]# [[email protected] java]# 
[[email protected] java]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
688ff3c3a696        centos              "/bin/bash"         15 seconds ago      Up 13 seconds                           competent_mahavira
[[email protected] java]# docker commit -a jiaxianseng -m "new centos" 688ff3c3a696 centos
sha256:9fcec34e52bb3c3092dbf5c43fa98bf19fc66a5e7216690ae75a03eb98e9bde5
[[email protected] java]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
centos              latest              9fcec34e52bb        6 seconds ago       202 MB
docker.io/redis     latest              ce25c7293564        2 days ago          95 MB
docker.io/tomcat    latest              48dd385504b1        8 days ago          475 MB
docker.io/centos    latest              1e1148e4cc2c        10 days ago         202 MB
docker.io/mysql     5.6                 a876cc5d29e4        4 weeks ago         256 MB

学神IT linux云计算集群架构师课程

  2、在阿里云上创建镜像仓库

  1) 访问地址:阿里云

  2) 找到容器镜像服务,创建镜像仓库

学神IT linux云计算集群架构师课程

  3、点击管理便可以看到操作的代码

十四:Docker部署web应用

  1、环境前提:配置jdk环境与mvaven环境

[[email protected] mysql-spring-boot-todo]# java -version
java version "1.8.0_191"
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)

学神IT linux云计算集群架构师课程

[[email protected] mysql-spring-boot-todo]# mvn -version
Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T00:41:47+08:00)
Maven home: /usr/java/maven
Java version: 1.8.0_191, vendor: Oracle Corporation
Java home: /usr/java/jdk1.8/jre
Default locale: zh_CN, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-862.6.3.el7.x86_64", arch: "amd64", family: "unix"

学神IT linux云计算集群架构师课程

  2、安装git

yum install -y git maven

  3、拉取代码

git clone https://github.com/yangzhares/mysql-spring-boot-todo.git

  4、 更新pom中的docker-maven-plugin

学神IT linux云计算集群架构师课程

  该项目是基于Dockerfile构建镜像

  5、更新application.yml中的mysql配置

[[email protected] resources]# pwd
/usr/java/javademo/mysql-spring-boot-todo/src/main/resources
[[email protected] resources]# vim application.properties

  6、由于本人宿主机上下载的mysql是最新的,所以拷贝下的项目mysql驱动要高点

学神IT linux云计算集群架构师课程

  7、配置方言

[[email protected] mysql-spring-boot-todo]# more src/main/resources/application.properties

学神IT linux云计算集群架构师课程

spring.datasource.url=jdbc:mysql://192.168.174.128:3307/test
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.jpa.hibernate.ddl-auto=update
spring.jpa.database-platform=org.hibernate.dialect.MySQL5Dialect

学神IT linux云计算集群架构师课程

    8、maven打包生成镜像

学神IT linux云计算集群架构师课程

[[email protected] javademo]# ll
总用量 4
drwxr-xr-x. 6 root root 4096 12月 23 20:22 mysql-spring-boot-todo
[[email protected] javademo]# cd mysql-spring-boot-todo/
[[email protected] mysql-spring-boot-todo]# mvn clean package docker:build
[[email protected] mysql-spring-boot-todo]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
jia/todo-demo       1.0.0               6a7e03e0ae46        12 seconds ago      712 MB

学神IT linux云计算集群架构师课程

学神IT linux云计算集群架构师课程

如果看到BUILD SUCCESS,已经生成的自定义镜像说明打包成功

  9、运行mysql镜像

[[email protected] resources]# docker run -p 3307:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASSE=test -d mysql:5.6

学神IT linux云计算集群架构师课程

  10、运行生成的镜像

[email protected] resources]# docker run --name todo -d -p 8080:8080 jia/todo-demo:1.0.0

   此时通过docker ps命令可以看到不久后该镜像会挂失

学神IT linux云计算集群架构师课程

[email protected] resources]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
ec224714ace6        mysql:5.6           "docker-entrypoint..."   7 minutes ago       Up 7 minutes        0.0.0.0:3306->3306/tcp   mysql01
[[email protected] resources]# docker logs todo

学神IT linux云计算集群架构师课程

学神IT linux云计算集群架构师课程

  问题一:未配置方言或者mysql驱动太低(本人一直卡在这,一直报org.hibernate.service.spi.ServiceException: Unable to create requested service

  通过docker logs 镜像名可以看到mysql未连接上,但是配置文件配置了mysql连接相关信息,也启动了mysql,却连接不上,这涉及到docker之间通讯问题(这里只演示单机到之间的通讯,如果不同的主机涉及网络问题)

Docker容器之间的通讯

  1) 采用link命令(不推荐)

[[email protected] resources]# docker run --name todo -d -p 8080:8080 --link  mysql jia/todo-demo:1.0.0

学神IT linux云计算集群架构师课程

 

此时如果访问http://虚拟机ip:8080,出现如下界面说明通讯成功

学神IT linux云计算集群架构师课程

   2) 通过exec命令查看docker容器之间是怎样通讯的

学神IT linux云计算集群架构师课程

[[email protected] ~]# docker exec -it todo bash
[email protected]:/app$ cat /etc/hosts     //打印hosts文件
127.0.0.1    localhost
::1    localhost ip6-localhost ip6-loopback
fe00::0    ip6-localnet
ff00::0    ip6-mcastprefix
ff02::1    ip6-allnodes
ff02::2    ip6-allrouters
172.17.0.2    mysql 0815d7ef28b0      //会多一条连接mysql地址
172.17.0.3    e984359ddb98
[email protected]:/app$ ping mysql   //当然通过ping命令也可以ping通
PING mysql (172.17.0.2): 56 data bytes 
64 bytes from 172.17.0.2: icmp_seq=0 ttl=64 time=0.235 ms
64 bytes from 172.17.0.2: icmp_seq=1 ttl=64 time=0.140 ms

学神IT linux云计算集群架构师课程

  3) 查看env可以查看环境变量

[email protected]:/app$ env

学神IT linux云计算集群架构师课程

  从中可以看到环境变量中配置了mysql相关的参数

  4)使用连接的好处

  运行在同一主机的独立容器间可以相互通讯

  容器间建立一个安全通讯隧道而不需要暴露容器的任何端口

十五、使用Docker Compose管理多个容器

  使用官方不推荐link方式进行容器之间的通讯,因为要一个一个地启动容器,官方推进Docker Compose方式管理多个容器

  1、为什么需要docker Compose

  当多个容器相互之间需要通讯时,手动配置容器间连接变得非常复杂

  2、什么是Docker Compose

  Docker Compose是一个定义和管理多个Docker容器的工具

  它通过YAML文件定义Docker应用运行时信息,如端口,网络等

  使用Docker Compose,一个简单命令可以管理多个容器应用

   3、使用场景

    快速构建开发环境

    自动化测试环境

   单一主机部署

  4、简单演示之如何通过Docker Compose

    4.1) 定义Dockerfile

    4.2) 定义docker-compose.yml文件

    4.3) 通过docker-compose up启动docker-compose.yml所定义的Docker应用

        demo中包含docker-compose.yml文件,其中定义关于两个容器的参数配置

[[email protected] docker-compose]# pwd
/usr/java/javademo/mysql-spring-boot-todo/docker-compose
[[email protected] docker-compose]# ll
总用量 12
-rw-r--r--. 1 root root 667 12月 23 17:26 docker-compose.yml

    也定义两个Dockerfile文件

-rw-r--r--. 1 root root 195 12月 23 14:59 Dockerfile-mysql

    4.4) 安装docker-compose

[[email protected] docker-compose]# curl -L https://github.com/docker/compose/releases/download/1.18.0/docker-compose-'uname-s'-'uname -m' -o /usr/local/bin/docker-compose
[[email protected] docker-compose]# chmod +x /usr/local/bin/docker-compose

    4.5) 启动容器

[[email protected] docker-compose]# docker-componse up -d

  几个重要的Docker Compose命令

  docker-compose up:启动所有容器

  docker-compose ps:查看所有运行容器

  docker-compose logs:查看运行容器日志

  docker-compose stop:停止运行容器

  docker-compose rm:删除已停止容器

  docker-compose build:重新创建所有镜像

  注意:dokcer-compose只有在Docker镜像不存在时创建镜像

  更行Dockerfile后一定要执行dockerA-compose build重新创建镜像

Docker远程访问

1、环境准备

  第二台安装Docker的服务器

  修改Docker守护进程启动选项,区别服务器

  保证Client API与Server API版本一致

2、为每台服务器配置label标签并且绑定ip

  宿主机1:(服务端 )

[[email protected] docker]# whereis docker
docker: /usr/bin/docker /etc/docker /usr/libexec/docker /usr/share/man/man1/docker.1.gz
[[email protected] docker]# pwd
/etc/docker
[[email protected] docker]# vim daemon.json

学神IT linux云计算集群架构师课程

{
  "registry-mirrors": ["https://1mz9i0xi.mirror.aliyuncs.com"], #阿里云加速
  "labels": ["name=docker-server_1"],   #为该docker设置标签身份标识
  "hosts": [
        "tcp://0.0.0.0:2375",           #表示绑定本机ip并且设置端口号为2375
        "unix:///var/run/docker.sock"   #docker客户端和服务端是使用socket连接方式的,有三种socket连接方式,
                        一种是直接连接本地的socket文件unix:///var/run/docker/sock,第二种是tcp://host:prot,
                        第三种是fd://socketfd,默认docker都是直接连接本地的socket文件,默认使用unix
    ]
}

学神IT linux云计算集群架构师课程

  重启:

[[email protected] docker]# systemctl restart docker

  宿主机2:

  配置label

{
  "registry-mirrors": ["https://1mz9i0xi.mirror.aliyuncs.com"],
  "labels": ["name=docker-server_2"]
}

  重启:并访问服务端

学神IT linux云计算集群架构师课程

[[email protected] ~]# curl http://192.168.174.134:2375/info
{"ID":"3WZZ:XR6K:SPLT:PLKO:XIGT:QREM:2NQ4:ZXCX:2774:YX73:JSKV:NU75",
"Containers":1,"ContainersRunning":0,"ContainersPaused":0,"ContainersStopped":1,
"Images":5,"Driver":"overlay2","DriverStatus":[["Backing Filesystem","xfs"],
["Supports d_type","false"],["Native Overlay Diff","true"]],"SystemStatus":null,
"Plugins":{"Volume":["local"],"Network":["bridge","host","macvlan","null","overlay"],
"Authorization":null},"MemoryLimit":true,"SwapLimit":true,"KernelMemory":true,"CpuCfsPeriod":true,
"CpuCfsQuota":true,"CPUShares":true,"CPUSet":true,"IPv4Forwarding":true,"BridgeNfIptables":true,
"BridgeNfIp6tables":true,"Debug":false,"NFd":15,"OomKillDisable":true,"NGoroutines":22,
"SystemTime":"2019-01-01T20:45:12.853448729+08:00","LoggingDriver":"journald",
"CgroupDriver":"systemd","NEventsListener":0,"KernelVersion":"3.10.0-862.6.3.el7.x86_64",
"PkgVersion":"docker-1.13.1-88.git07f3374.el7.centos.x86_64","OperatingSystem":"CentOS Linux 7 (Core)",
"OSType":"linux","Architecture":"x86_64","IndexServerAddress":"https://index.docker.io/v1/",
"IndexServerName":"docker.io","RegistryConfig":{"InsecureRegistryCIDRs":["127.0.0.0/8"],
"IndexConfigs":{"docker.io":{"Name":"docker.io","Mirrors":["https://1mz9i0xi.mirror.aliyuncs.com"],
"Secure":true,"Official":true}},"Mirrors":["https://1mz9i0xi.mirror.aliyuncs.com"]},"NCPU":1,
"MemTotal":1910042624,"DockerRootDir":"/var/lib/docker","HttpProxy":"","HttpsProxy":"",
"NoProxy":"","Name":"bogon","Labels":["name=docker-server_1"],"ExperimentalBuild":false,
"ServerVersion":"1.13.1","ClusterStore":"","ClusterAdvertise":"",
"Runtimes":{"docker-runc":{"path":"/usr/libexec/docker/docker-runc-current"},
"runc":{"path":"docker-runc"}},"DefaultRuntime":"docker-runc",
"Swarm":{"NodeID":"","NodeAddr":"","LocalNodeState":"inactive","ControlAvailable":false,"Error":"","RemoteManagers":null,"Nodes":0,"Managers":0,
"Cluster":{"ID":"","Version":{},"CreatedAt":"0001-01-01T00:00:00Z","UpdatedAt":"0001-01-01T00:00:00Z","Spec":{"Orchestration":{},
"Raft":{"ElectionTick":0,"HeartbeatTick":0},"Dispatcher":{},"CAConfig":{},"TaskDefaults":{},"EncryptionConfig":{"AutoLockManagers":false}}}},
"LiveRestoreEnabled":false,"Isolation":"","InitBinary":"/usr/libexec/docker/docker-init-current",
"ContainerdCommit":{"ID":"","Expected":"aa8187dbd3b7ad67d8e5e3a15115d3eef43a7ed1"},
"RuncCommit":{"ID":"N/A","Expected":"9df8b306d01f59d3a8029be411de015b7304dd8f"},
"InitCommit":{"ID":"fec3683b971d9c3ef73f284f176672c44b448662","Expected":"949e6facb77383876aeff8a6944dde66b3089574"},
"SecurityOptions":["name=seccomp,profile=/etc/docker/seccomp.json","name=selinux"],"Registries":[{"Name":"docker.io","Secure":true}]}

学神IT linux云计算集群架构师课程

  利用客户端访问:docker -H命令

学神IT linux云计算集群架构师课程

[[email protected] docker]# docker -H tcp://192.168.174.134:2375 info
Containers: 1
 Running: 0
 Paused: 0
 Stopped: 1
Images: 5
Server Version: 1.13.1
Storage Driver: overlay2
 Backing Filesystem: xfs
 Supports d_type: false
 Native Overlay Diff: true
Logging Driver: journald
Cgroup Driver: systemd
Plugins: 
 Volume: local
 Network: bridge host macvlan null overlay
Swarm: inactive
Runtimes: docker-runc runc
Default Runtime: docker-runc
Init Binary: /usr/libexec/docker/docker-init-current
containerd version:  (expected: aa8187dbd3b7ad67d8e5e3a15115d3eef43a7ed1)
runc version: N/A (expected: 9df8b306d01f59d3a8029be411de015b7304dd8f)
init version: fec3683b971d9c3ef73f284f176672c44b448662 (expected: 949e6facb77383876aeff8a6944dde66b3089574)
Security Options:
 seccomp
  WARNING: You're not using the default seccomp profile
  Profile: /etc/docker/seccomp.json
 selinux
Kernel Version: 3.10.0-862.6.3.el7.x86_64
Operating System: CentOS Linux 7 (Core)
OSType: linux
Architecture: x86_64
Number of Docker Hooks: 3
CPUs: 1
Total Memory: 1.779 GiB
Name: bogon
ID: 3WZZ:XR6K:SPLT:PLKO:XIGT:QREM:2NQ4:ZXCX:2774:YX73:JSKV:NU75
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Labels:
 name=docker-server_1
Experimental: false
Insecure Registries:
 127.0.0.0/8
Registry Mirrors:
 https://1mz9i0xi.mirror.aliyuncs.com
Live Restore Enabled: false
Registries: docker.io (secure)

学神IT linux云计算集群架构师课程