1. docker是什么???

(1) docker是一台类似虚拟机的功能, 内部由一个个镜像组成, 镜像里可以运行容器, 而这个容器可以是任何东西, 比如mysql, 比如tomcat等等, 它的目的是将任何东西抽象出来, 放入镜像的容器中运行, 它不管你到底做了啥, 它只管把你装进容器中, 运行
(2) docker是一个cs架构
(3) 客户端docker自己构建容器, 通过网络连接到远程的docker的守护进程或者连接到本地的docker守护进行
(4) docker存在一个注册中心 Register, 这个注册中心存在共有和私有的方法, 用户可以将自己创建的镜像(容器)上传到注册中心, 这样别人也可以使用该用户的注册环境


2. 为什么使用docker? (docker有什么优点)

docker的优点有四个:
    1)  上手快
用户只需要几分钟,就可以把自己的程序“Docker化”。Docker依赖于“写时复制”(copy-on-write)模型,使修改应用程序也非常迅速,可以说达到“随心所致,代码即改”的境界。
    2) 职责和逻辑分类
不用关系开发者环境和测试环境还有线上环境不同而出现bug的原因
    3) 快速高效的开发声明周期
使用docker的话, 它是跨平台的, 只要在一个平台做好, 其他平台都可以一键使用, 做到项目的 开发, 测试, 上线 都是一个配置
    4) 鼓励使用面向服务的架构
docker鼓励使用者在一个容器中开启一个微服务

3. 怎么用docker?

(0) 启动docker

systemctl start docker
 
1
systemctl start docker

(1) 镜像的增删改查

1) 查看已经安装的docker镜像

[root@bogon docker]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql latest d435eee2caa5 16 hours ago 456MB
gogs/gogs latest 521c911bafda 15 months ago 94.2MB
grafana/grafana latest 17a5ba3b1216 15 months ago 245MB
centos/mysql-57-centos7 latest 2e4ddfafaa6f 15 months ago 445MB
rancher/server latest 38d4a75fa8f9 15 months ago 1.08GB
centos 7 5182e96772bf 15 months ago 200MB
redis latest 4e8db158f18d 15 months ago 83.4MB
tomcat 7-jre7 fa2c33156fb9 16 months ago 357MB
nginx latest c82521676580 16 months ago 109MB
registry latest b2b03e9146e1 16 months ago 33.3MB
google/cadvisor latest 75f88e3ec333 23 months ago 62.2MB
tutum/influxdb latest c061e5808198 3 years ago 290MB
 
1
[root@bogon docker]# docker images
2
REPOSITORY                TAG                 IMAGE ID            CREATED             SIZE
3
mysql                     latest              d435eee2caa5        16 hours ago        456MB
4
gogs/gogs                 latest              521c911bafda        15 months ago       94.2MB
5
grafana/grafana           latest              17a5ba3b1216        15 months ago       245MB
6
centos/mysql-57-centos7   latest              2e4ddfafaa6f        15 months ago       445MB
7
rancher/server            latest              38d4a75fa8f9        15 months ago       1.08GB
8
centos                    7                   5182e96772bf        15 months ago       200MB
9
redis                     latest              4e8db158f18d        15 months ago       83.4MB
10
tomcat                    7-jre7              fa2c33156fb9        16 months ago       357MB
11
nginx                     latest              c82521676580        16 months ago       109MB
12
registry                  latest              b2b03e9146e1        16 months ago       33.3MB
13
google/cadvisor           latest              75f88e3ec333        23 months ago       62.2MB
14
tutum/influxdb            latest              c061e5808198        3 years ago         290MB
  • REPOSITORY:镜像名称
  • TAG:镜像标签
  • IMAGE ID:镜像ID
  • CREATED:镜像的创建日期(不是获取该镜像的日期)
  • SIZE:镜像大小
  • 这些镜像都是存储在Docker宿主机的/var/lib/docker目录下

2) 查找网络上的docker镜像

[root@bogon docker]# docker search centOS
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
centos The official build of CentOS. 5688 [OK]
ansible/centos7-ansible Ansible on Centos7 125 [OK]
jdeathe/centos-ssh OpenSSH / Supervisor / EPEL/IUS/SCL Repos - … 114 [OK]
consol/centos-xfce-vnc Centos container with "headless" VNC session… 100 [OK]
centos/mysql-57-centos7 MySQL 5.7 SQL database server 64
imagine10255/centos6-lnmp-php56 centos6-lnmp-php56 57 [OK]
 
1
[root@bogon docker]# docker search centOS
2
NAME                               DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
3
centos                             The official build of CentOS.                   5688                [OK]                
4
ansible/centos7-ansible            Ansible on Centos7                              125                                     [OK]
5
jdeathe/centos-ssh                 OpenSSH / Supervisor / EPEL/IUS/SCL Repos - …   114                                     [OK]
6
consol/centos-xfce-vnc             Centos container with "headless" VNC session…   100                                     [OK]
7
centos/mysql-57-centos7            MySQL 5.7 SQL database server                   64                                      
8
imagine10255/centos6-lnmp-php56    centos6-lnmp-php56                              57                                      [OK]
9

  • NAME:仓库名称
  • DESCRIPTION:镜像描述
  • STARS:用户评价,反应一个镜像的受欢迎程度
  • OFFICIAL:是否官方
  • AUTOMATED:自动构建,表示该镜像由Docker Hub自动构建流程创建的

3) 获得镜像

[root@bogon docker]# docker pull indigo/centos-maven
Using default tag: latest
latest: Pulling from indigo/centos-maven
 
1
[root@bogon docker]# docker pull indigo/centos-maven
2
Using default tag: latest
3
latest: Pulling from indigo/centos-maven

4) 删除镜像

按镜像ID删除镜像

docker rmi 镜像ID

删除所有镜像

docker rmi `docker images -q`

(2) 容器的增删改查

查看正在运行的容器

[root@bogon docker]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
bb30bc08bd70 mysql "docker-entrypoint.s…" 16 minutes ago Up 11 minutes 0.0.0.0:3306->3306/tcp, 33060/tcp docker_mysql
 
1
[root@bogon docker]# docker ps
2
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                               NAMES
3
bb30bc08bd70        mysql               "docker-entrypoint.s…"   16 minutes ago      Up 11 minutes       0.0.0.0:3306->3306/tcp, 33060/tcp   docker_mysql
4

查看所有创建好的容器

[root@bogon docker]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
bb30bc08bd70 mysql "docker-entrypoint.s…" 19 minutes ago Up 13 minutes 0.0.0.0:3306->3306/tcp, 33060/tcp docker_mysql
 
1
[root@bogon docker]# docker ps -a
2
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                               NAMES
3
bb30bc08bd70        mysql               "docker-entrypoint.s…"   19 minutes ago      Up 13 minutes       0.0.0.0:3306->3306/tcp, 33060/tcp   docker_mysql
4

查看停止的容器

[root@bogon docker]# docker ps -f status=exited
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
 
1
[root@bogon docker]# docker ps -f status=exited
2
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
3

查看最后一次运行的容器

[root@bogon docker]# docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
bb30bc08bd70 mysql "docker-entrypoint.s…" 21 minutes ago Up 16 minutes 0.0.0.0:3306->3306/tcp, 33060/tcp docker_mysql
 
1
[root@bogon docker]# docker ps -l
2
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                               NAMES
3
bb30bc08bd70        mysql               "docker-entrypoint.s…"   21 minutes ago      Up 16 minutes       0.0.0.0:3306->3306/tcp, 33060/tcp   docker_mysql
4

查看容器的ip

我们可以通过以下命令查看容器运行的各种数据

docker inspect 容器名称(容器ID) 

也可以直接执行下面的命令直接输出IP地址

docker inspect --format='{{.NetworkSettings.IPAddress}}' 容器名称(容器ID)

创建容器

①创建容器命令:docker run

  • -i:表示运行容器
  • -t:表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端。
  • --name :为创建的容器命名。
  • -v:表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个-v做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。
  • -d:在run后面加上-d参数,则会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器,如果只加-i -t两个参数,创建后就会自动进去容器)。
  • -p:表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p做多个端口映射

(1)交互式方式创建容器

docker run -it --name=容器名称 镜像名称:标签 /bin/bash

这时我们通过ps命令查看,发现可以看到启动的容器,状态为启动状态

退出当前容器

exit

(2)守护式方式创建容器:

docker run -di --name=容器名称 镜像名称:标签

登录守护式容器方式:

docker exec -it 容器名称 (或者容器ID)  /bin/bash

docker run的端口和文件映射方式

使用端口和文件映射方式配置nginx的配置文件映射到我们主机中(也就是我们主机中的配置文件将被加载到 docker 的容器中)
以下我们以配置nginx为例: 
执行下面这段代码前需要首先创建
上面这几个文件和文件夹, 有些配置可以使用 docker cp 容器名字:目录+空格+本地目录(主机目录), 例如下面: 

docker cp nginx:/etc/nginx/nginx.conf nginx.conf

docker cp nginx:/etc/nginx/conf.d/default.conf default.conf
我们需要copy上面的两个文件到我们主机上(docker中的nginx容器是虚拟机, 我们的centOS是真实的主机)
然后我们开始创建目录映射关联
下面是完整命令
docker run -p 8080:80 --name nginx -v /opt/nginx/static:/usr/share/nginx/html -v /opt/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /opt/nginx/conf.d:/etc/nginx/conf.d -v /opt/nginx/log:/var/log/nginx -v /opt/nginx/ssl:/ssl -di nginx
做完上面的步骤之后, 我们的配置文件不需要修改了
比如:
上面这个目录已经被我们映射为本地目录/opt/nginx/log, 所以nginx对上面目录的所有修改都会被映射成本地目录的修改
这也是上面完整命令为什么需要映射这么多的目录的原因了
下面是nginx有配置文件中的目录
下面是docker目录映射的目录, 一一对应了
docker run -p 8080:80 --name nginx \
-v /opt/nginx/static:/usr/share/nginx/html \
-v /opt/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /opt/nginx/conf.d:/etc/nginx/conf.d \
-v /opt/nginx/log:/var/log/nginx \
-v /opt/nginx/ssl:/ssl \
-di nginx

如果我们需要类似zookeeper那样的连接到server, 一般情况我们都是直接./zkCli.sh 直接启动客户端但是如果zookeeper在docker中运行的话则需要使用
docker exec -it zookeeper_0 zkCli.sh
上面这句话进入方法中
或者我们可以使用
docker exec -it zookeeper_0
进入到我们zookeeper容器的虚拟机中, 然后找到zookeeper的bin目录, 找到zkCli.sh进行执行

关闭容器

docker stop 容器名称(或者容器ID)

启动容器

docker start 容器名称(或者容器ID)

删除指定的容器

docker rm 容器名称(容器ID)

docker查看容器启动失败日志

docker logs 容器名称(容器ID)

(3)应用部署

MySQL部署

(1)拉取mysql镜像

docker pull centos/mysql-57-centos7

(2)创建容器

docker run -di --name=tensquare_mysql -p 33306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql

-p 代表端口映射,格式为  宿主机映射端口:容器运行端口

-e 代表添加环境变量  MYSQL_ROOT_PASSWORD 是root用户的登陆密码

(3)远程登录mysql

连接宿主机的IP ,指定端口为33306

tomcat部署

(1)拉取镜像

docker pull tomcat:7-jre7

(2)创建容器

创建容器  -p表示地址映射

docker run -di --name=mytomcat -p 9000:8080 
-v /usr/local/webapps:/usr/local/tomcat/webapps tomcat:7-jre7

Nginx部署

(1)拉取镜像

docker pull nginx

(2)创建Nginx容器

docker run -di --name=mynginx -p 80:80 nginx

Redis部署

(1)拉取镜像

docker pull redis

(2)创建容器

docker run -di --name=myredis -p 6379:6379 redis

(4) 迁移和备份

1) 保存
①容器保存成镜像
[root@bogon ~]# docker commit docker_mysql
sha256:0228934f2164ee17ec6eda85f525f3628a842b0ba3ea8e85a2a3e4f440e17550
 
1
[root@bogon ~]# docker commit docker_mysql
2
sha256:0228934f2164ee17ec6eda85f525f3628a842b0ba3ea8e85a2a3e4f440e17550
②镜像备份
google/cadvisor           latest              eb1210707573        12 months ago       69.6MB
 
1
google/cadvisor           latest              eb1210707573        12 months ago       69.6MB
[root@bogon ~]# docker save -o google_cadvisor.tar google/cadvisor:latest
 
1
[root@bogon ~]# docker save -o google_cadvisor.tar google/cadvisor:latest
③镜像的恢复
[root@bogon ~]# docker load -i google_cadvisor.tar
cd7100a72410: Loading layer [==================================================>] 4.403MB/4.403MB
9ea477e6d99e: Loading layer [==================================================>] 33.09MB/33.09MB
66b3c2e84199: Loading layer [==================================================>] 32.88MB/32.88MB
Loaded image: google/cadvisor:latest
 
1
[root@bogon ~]# docker load -i google_cadvisor.tar 
2
cd7100a72410: Loading layer [==================================================>]  4.403MB/4.403MB
3
9ea477e6d99e: Loading layer [==================================================>]  33.09MB/33.09MB
4
66b3c2e84199: Loading layer [==================================================>]  32.88MB/32.88MB
5
Loaded image: google/cadvisor:latest

(5) Dockerfile -- 这个跟MakeFile很像

(1) 是什么?

 一个存放参数和命令的脚本, 用于创建镜像的脚本

(2) 为什么使用它?

1) 为开发团队提供一个相同的环境
2) 测试人员可以通过开发团队的dockerfile脚本完成一个完全相同的环境
3) 运维人员在部署时, 可以实现无缝衔接

(3) 怎么用?

1) 常用命令

  • FROM image_name:tag     定义了使用哪个基础镜像启动构建流程
  • MAINTAINER user_name     声明镜像的创建者
  • ENV key value     设置环境变量 (可以写多条)
  • RUN command     是Dockerfile的核心部分(可以写多条)
  • ADD source_dir/file dest_dir/file     将宿主机的文件复制到容器内,如果是一个压缩文件,将会在复制后自动解压
  • COPY source_dir/file dest_dir/file 和ADD     相似,但是如果有压缩文件并不能解压
  • WORKDIR path_dir      设置工作目录

2) 使用步骤

① 创建目录
mkdir -p /usr/local/dockerjdk11
 
1
mkdir -p /usr/local/dockerjdk11
②将jdk11包上传到 /usr/local/dockerjdk11
③创建Dockerfile
#依赖镜像名称和ID
FROM centos:7
#指定镜像创建者信息
MAINTAINER BANGIAO
#切换工作目录
WORKDIR /usr
RUN mkdir /usr/local/java
#ADD 是相对路径jar,把java添加到容器中
ADD jdk-11.0.5_linux-x64_bin.tar.gz /usr/local/java/ #配置java环境变量
ENV JAVA_HOME /usr/local/java/jdk-11.0.5
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
ENV PATH $JAVA_HOME/bin:$PATH
 
1
#依赖镜像名称和ID
2
FROM centos:7
3
#指定镜像创建者信息
4
MAINTAINER BANGIAO
5
#切换工作目录
6
WORKDIR /usr
7
RUN mkdir  /usr/local/java
8
#ADD 是相对路径jar,把java添加到容器中
9
ADD jdk-11.0.5_linux-x64_bin.tar.gz /usr/local/java/
10

11
#配置java环境变量
12
ENV JAVA_HOME /usr/local/java/jdk-11.0.5
13
ENV JRE_HOME $JAVA_HOME/jre
14
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
15
ENV PATH $JAVA_HOME/bin:$PATH
④执行创建的dockerfile
在创建Dokerfile的目录下面使用这个命令
docker build -t java11:11 .
 
1
docker build -t java11:11 .

Docker私有仓库

私有仓库搭建与配置

(1)拉取私有仓库镜像(此步省略)

docker pull registry

(2)启动私有仓库容器

docker run -di --name=registry -p 5000:5000 registry

(3)打开浏览器 输入地址http://192.168.184.141:5000/v2/_catalog看到{"repositories":[]} 表示私有仓库搭建成功并且内容为空

(4)修改daemon.json

vi /etc/docker/daemon.json

添加以下内容,保存退出。

{"insecure-registries":["192.168.184.141:5000"]} 

此步用于让 docker信任私有仓库地址

(5)重启docker 服务

systemctl restart docker

镜像上传至私有仓库

(1)标记此镜像为私有仓库的镜像

docker tag jdk1.8 192.168.184.141:5000/jdk1.8

(2)再次启动私服容器

docker start registry

(3)上传标记的镜像

docker push 192.168.184.141:5000/jdk1.8

(6) Docker Compose

1) 是什么?

用于定义和运行多个容器的应用程序的工具, 使用YML文件来配置应用程序需要的所有容器环境

2) 使用docker compose搭建zookpeer集群

①安装docker compose 
$ sudo curl -L https://github.com/docker/compose/releases/download/1.24.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

$ sudo chmod +x /usr/local/bin/docker-compose
 
1
$ sudo curl -L https://github.com/docker/compose/releases/download/1.24.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
2

3
$ sudo chmod +x /usr/local/bin/docker-compose
安装版本
docker-compose -version
 
1
docker-compose -version

或者使用 pip 安装
②创建docker-compose文件

这里我就在 /opt 目录下新建了一个 zookeeper 目录(你也可以自定义存储目录),如下图:

在当前目录(/opt/zookeeper/)创建一个名为 docker-compose.yml 的文件, 其内容如下:


version: '2'
services:
zoo1:
image: zookeeper
restart: always
container_name: zoo1
ports:
- "2181:2181"
environment:
ZOO_MY_ID: 1
ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888 zoo2:
image: zookeeper
restart: always
container_name: zoo2
ports:
- "2182:2181"
environment:
ZOO_MY_ID: 2
ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888 zoo3:
image: zookeeper
restart: always
container_name: zoo3
ports:
- "2183:2181"
environment:
ZOO_MY_ID: 3
ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888
 
1
version: '2'
2
services:
3
    zoo1:
4
        image: zookeeper
5
        restart: always
6
        container_name: zoo1
7
        ports:
8
            - "2181:2181"
9
        environment:
10
            ZOO_MY_ID: 1
11
            ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888
12

13
    zoo2:
14
        image: zookeeper
15
        restart: always
16
        container_name: zoo2
17
        ports:
18
            - "2182:2181"
19
        environment:
20
            ZOO_MY_ID: 2
21
            ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888
22

23
    zoo3:
24
        image: zookeeper
25
        restart: always
26
        container_name: zoo3
27
        ports:
28
            - "2183:2181"
29
        environment:
30
            ZOO_MY_ID: 3
31
            ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888
32

这个配置文件会告诉 Docker 分别运行三个 zookeeper 镜像, 并分别将本地的 2181, 2182, 2183 端口绑定到对应的容器的2181端口上(每个zookeeper容器的默认端口都是2181,这句话意思也就是说,将宿主机的2181、2182、2183这3个端口号,分别映射到3个zookeeper容器的2181端口)。

ZOO_MY_ID 和 ZOO_SERVERS 是搭建 ZK 集群需要设置的两个环境变量,其中 ZOO_MY_ID 表示 ZK 服务的 id,它是1-255 之间的整数,必须在集群中唯一;ZOO_SERVERS 是ZK 集群的主机列表。

3) 运行 docker-compose

接着我们在 docker-compose.yml 所在的目录(/opt/zookeeper/ )下运行:

COMPOSE_PROJECT_NAME=zk_cluster docker-compose up

即可启动 ZK 集群了。

注意:这种方式非后台运行,当执行 Ctrl + C 组合键的时候,所有的ZK容器都会停止运行。

4) 以后台方式运行docker-compose

COMPOSE_PROJECT_NAME=zk_cluster docker-compose up -d

很简单,只要在最后面加上“-d”即可。

运行效果如下图:

可以看到,是以后台方式运行的ZK容器集群。

5) 查看启动的ZK集群

执行上述命令成功后,接着新开启一个终端,然后在新终端界面中,首先进入 /opt/zookeeper/ 目录,在该目录下运行以下命令可以查看启动的 ZK 容器:

COMPOSE_PROJECT_NAME=zk_cluster docker-compose ps

如下图:

你也可以通过 docker ps 命令查看启动的ZK容器列表,如下图:

很明显的看到,启动了3个ZK容器,每个容器对应着宿主机的不同的端口号。

6) 测试连接ZK集群

查看ZK集群的信息,有多种方法。这里我们就使用最普通的进入容器内部来查看ZK节点的信息以及它的模式。

通过上面的图,可以看到3个ZK容器的ID信息。

这里我们先进入zoo1这个容器,查看ZK的信息,执行以下命令:

docker exec -it 49 zkServer.sh status

其中“49”指的是zoo1容器的ID。

运行结果如下图:

可以看到,Mode的值为“follower”,指的是从节点,并非主节点。

以此类推,查看 zoo2 这个ZK容器的信息

当前ZK容器节点为主节点

查看 zoo3 这个ZK容器的信息

当前ZK容器节点为从节点

经过以上的查看,可以清晰的看到,其中一个ZK容器是一个主节点leader,另外2个都是从节点follower。

到此,在Docker中搭建zookeeper的集群环境已经讲解完了。






问题总汇:
(1) docker MySQL 连接出现 Authentication plugin 'caching_sha2_password' cannot be loaded
原因: 

我在使用navicat 进行MySQL管理是出现了。2059 - authentication plugin 'caching_sha2_password' -navicat连接异常。这个错误。

这个错误的原因是由于MySQL8.0之后的加密规则为caching_sha2_password.而在此之前的加密规则为mysql_native_password。

可以将加密规则改成mysql_native_password来。

解决方案:
1.进入mysql容器
docker exec -it mysql2 /bin/bash
2.进入mysql
mysql -uroot -pmima
3.修改密码
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
















[心得]docker学习笔记的更多相关文章

  1. Docker学习笔记 — Docker私有仓库搭建

    Docker学习笔记 — Docker私有仓库搭建   目录(?)[-] 环境准备 搭建私有仓库 测试 管理仓库中的镜像 查询 删除 Registry V2   和Mavan的管理一样,Dockers ...

  2. Docker学习笔记 — 配置国内免费registry mirror

    Docker学习笔记 — 配置国内免费registry mirror Docker学习笔记 — 配置国内免费registry mirror

  3. docker学习笔记1 -- 安装和配置

    技术资料 docker中文官网:http://www.docker.org.cn/ 中文入门课程:http://www.docker.org.cn/book/docker.html docker学习笔 ...

  4. Docker学习笔记之一,搭建一个JAVA Tomcat运行环境

    Docker学习笔记之一,搭建一个JAVA Tomcat运行环境 前言 Docker旨在提供一种应用程序的自动化部署解决方案,在 Linux 系统上迅速创建一个容器(轻量级虚拟机)并部署和运行应用程序 ...

  5. docker~学习笔记索引

    回到占占推荐博客索引 使用docker也有段时间了,写了不少文章与总结,下面把它整理个目录出来,方便大家去学习与检索! docker~学习笔记索引 docker~linux下的部署和基本命令(2017 ...

  6. Docker学习笔记 - Docker容器内部署redis

    Docker学习笔记(2-4)Docker应用实验-redist server 和client的安装使用 一.获取redis容器(含客户端和服务端) 二.创建服务端容器 1.在终端A中运行redis- ...

  7. docker学习笔记(一)—— ubuntu16.04下安装docker

    docker学习笔记(一)—— ubuntu16.04下安装docker 原创 2018年03月01日 14:53:00 标签: docker / ubuntu 1682 本文开发环境为Ubuntu ...

  8. Docker学习笔记总结

    Docker学习笔记 https://yeasy.gitbooks.io/docker_practice/content/   一 环境搭建 Ubuntu安装 .添加软件源的GPG密钥 curl -f ...

  9. docker学习笔记二:常用命令

    docker学习笔记二:常用命令 查看docker常用命令 docker --help 返回结果如下: 其中常用的命令如下: 1.image相关操作 展示所有的image: 删除image: rmi ...

随机推荐

  1. Linux xargs命令-(转载)

    xargs是给命令传递参数的一个过滤器,也是组合多个命令的一个工具.它把一个数据流分割为一些足够小的块,以方便过滤器和命令进行处理.通常情况下,xargs从管道或者stdin中读取数据,但是它也能够从 ...

  2. mysql示例及练习2

    #创建数据库并应用create database shopdb;use shopdb;#创建表customerscreate table customers(c_id int primary key ...

  3. Linux中级之ansible概念及hoc命令行调用模式

    一.Ansible简介 ansible是新出现的开源的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系统 ...

  4. Django中的中英文切换

    setting.py文件中 其中 zh-Hans是简体中文 zh-Hant是繁体中文 所以更改setttings.py 下 LANGUAGE_CODE = 'zh-Hans'即可 # 英文 LANGU ...

  5. 游刃于私有网络与公共网络之间的NAT

    网络地址转化技术NAT 1. 应用场景 2. NAT 2.1 静态NAT 2.2 动态NAT 2.3 NAPT 2.4 EASY IP 3. NAT配置 3.1 静态NAT 3.2 动态NAT 3.3 ...

  6. elasticsearch_dsl 操作

    import elasticsearch from elasticsearch_dsl import Search, MultiSearch # Search-执行一个搜索,MultiSearch-同 ...

  7. GO学习-(3) VS Code配置Go语言开发环境

    VS Code配置Go语言开发环境 VS Code配置Go语言开发环境 说在前面的话,Go语言是采用UTF8编码的,理论上使用任何文本编辑器都能做Go语言开发.大家可以根据自己的喜好自行选择.编辑器/ ...

  8. X-Deep Learning功能模块

    X-Deep Learning功能模块 特征体系 样本 特征 网络 数据准备 样本格式 使用DataReader读取数据 自定义python reader 定义模型 稀疏部分 稠密部分 优化器 训练模 ...

  9. Nucleus 实时操作系统中断(下)

    Nucleus 实时操作系统中断(下) Nucleus RTOS兼容性 由于中断在Nucleus SE中的实现方式与Nucleus rto截然不同,因此不应期望有特定的兼容性.Nucleus RTOS ...

  10. 6, java数据结构和算法: 栈的应用, 逆波兰计算器, 中缀表达式--> 后缀表达式

    直接上代码: public class PolandCalculator { //栈的应用:波兰计算器: 即: 输入一个字符串,来计算结果, 比如 1+((2+3)×4)-5 结果为16 public ...