├── Docker.md ├── README.md └── pic ├── 1597908053(1).png ├── image-20200606203310614.png ├── image-20200606203315597.png ├── image-20200606205436434.png ├── image-20200606205739655.png ├── image-20200606212250845.png ├── image-20200608091950655.png ├── image-20200608092628498.png ├── image-20200608093040366.png ├── image-20200608093114774.png ├── image-20200616145430166.png ├── image-20200616150014082.png ├── image-20200616150818860.png ├── image-20200616150922549.png ├── image-20200616151641013.png ├── image-20200616151913277.png ├── image-20200616154429105.png ├── image-20200616154455964.png ├── image-20200616155201285.png ├── image-20200616155600567.png ├── image-20200616155649476.png ├── image-20200616160315298.png ├── image-20200616161441669.png ├── image-20200616162107363.png ├── image-20200616162302653.png ├── image-20200616163338187.png ├── image-20200616172056530.png ├── image-20200616172651835.png ├── image-20200616173009473.png ├── image-20200616173050756.png ├── image-20200616173110684.png ├── image-20200616173308194.png ├── image-20200616173740981.png ├── image-20200616174440284.png ├── image-20200616200344918.png ├── image-20200616200418271.png ├── image-20200616200505065.png ├── image-20200617094339687.png ├── image-20200617100948088.png ├── image-20200617101048404.png ├── image-20200617101105899.png ├── image-20200617102049613.png ├── image-20200617102126526.png ├── image-20200617103406974.png ├── image-20200617103633235.png ├── image-20200617104004004.png ├── image-20200617161744298.png ├── image-20200617210554147.png ├── image-20200617210932306.png ├── image-20200617211021003.png ├── image-20200617211039508.png ├── image-20200617212310709.png ├── image-20200617213142079.png ├── image-20200617213213721.png ├── image-20200618100319796.png ├── image-20200618100551587.png ├── image-20200618100621199.png ├── image-20200618101811914.png ├── image-20200618101849917.png ├── image-20200618102022167.png ├── image-20200618102544564.png ├── image-20200618102837397.png ├── image-20200618103109004.png ├── image-20200618103407205.png ├── image-20200618103958168.png ├── image-20200618104052242.png ├── image-20200618104950722.png ├── image-20200618105057785.png ├── image-20200618105828489.png ├── image-20200618111713885.png ├── image-20200618113018622.png ├── image-20200618113556445.png ├── image-20200618114542622.png ├── image-20200618114902169.png ├── image-20200618115149971.png ├── image-20200618115302656.png ├── image-20200618115921069.png ├── image-20200618134706491.png ├── image-20200618135424706.png ├── image-20200618135450037.png ├── image-20200618140242423.png ├── image-20200618140907894.png ├── image-20200618140932621.png ├── image-20200618141014511.png ├── image-20200618153329894.png ├── image-20200618153641472.png ├── image-20200618153855605.png ├── image-20200618154457286.png ├── image-20200618154736475.png ├── image-20200618154943194.png ├── image-20200618155750591.png ├── image-20200618160425265.png ├── image-20200618162914845.png ├── image-20200618162917672.png ├── image-20200618163659503.png ├── image-20200618163938466.png ├── image-20200618164148642.png ├── image-20200618164818624.png ├── image-20200618171353336.png ├── image-20200618173138377.png ├── image-20200618173234347.png ├── image-20200618173300551.png ├── image-20200618173729692.png ├── image-20200618203452205.png ├── image-20200618203744983.png ├── image-20200618211023834.png ├── image-20200618211318410.png ├── image-20200618211516566.png ├── image-20200618211547398.png ├── image-20200618211803012.png ├── image-20200618212936481.png ├── image-20200618213310752.png ├── image-20200618220658979.png ├── image-20200618221801103.png ├── image-20200618221837895.png ├── image-20200618222224352.png ├── image-20200621165403842.png ├── image-20200621165733780.png ├── image-20200621170429658.png ├── image-20200621170540593.png ├── image-20200621171513650.png ├── image-20200621172333639.png ├── image-20200621172830779.png ├── image-20200621174200588.png ├── image-20200621174204807.png ├── image-20200621174943858.png ├── image-20200621174948310.png ├── image-20200621184333206.png ├── image-20200621184847524.png ├── image-20200621185539523.png ├── image-20200621190219978.png ├── image-20200621190439448.png ├── image-20200621190524848.png ├── image-20200621190812481.png ├── image-20200621192103460.png ├── image-20200622075427103.png ├── image-20200622075653789.png ├── image-20200622075802180.png ├── image-20200624101454866.png └── 企业微信截图_16487978489681.png /Docker.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | # Docker 8 | 9 |  10 | 11 | ## 参考资料 12 | 13 | 官方文档:https://docs.docker.com/docker-for-windows/ 14 | 15 | 【官方文档超级详细】 16 | 17 | 仓库地址:https://hub.docker.com/ 18 | 19 | 【发布到仓库,git pull push】 20 | 21 | 这个笔记b站教程:https://www.bilibili.com/video/BV1og4y1q7M4? 22 | 23 | 24 | 25 | ## 前期基础 26 | 27 | linux基本命令 28 | 29 | 30 | 31 | ## Docker概述 32 | 33 | 使用Docker后的流程: 34 | 35 | 开发:建立模型--环境--打包带上环境,即镜像--放到Docker仓库 36 | 37 | 部署:下载Docker中的镜像,直接运行即可 38 | 39 | 40 | 41 | Docker的思想来自于集装箱,集装箱,对环境进行隔离 42 | 43 | Docker通过隔离机制,可以将服务器利用到极致。 44 | 45 | ### 46 | 47 | ## Docker安装 48 | 49 | ### Docker的基本组成 50 | 51 |  52 | 53 | 明确几个概念: 54 | 55 | 1. 镜像(image):docker镜像好比一个模板,可以通过这个模板来创建容器(container),一个镜像可以创建多个容器,类似Python中的Class 56 | 57 | 2. 容器(container):类似Python中通过Class创建的实例,Object;容器可以理解为一个简易的系统 58 | 59 | 3. 仓库(repository):存放镜像的地方, 60 | 61 | 分为共有仓库和私有仓库 62 | 63 | - Docker Hub:国外的 64 | 65 | - 阿里云:配置镜像加速 66 | 67 | ### 环境准备 68 | 69 | 我们要有一台服务器,并且可以操作它 70 | 71 | 1. Linux命令基础,购买linux阿里云的服务器 72 | 2. CentOS 7 73 | 3. 使用Xshell链接远程服务器 74 | 75 | ### 安装xshell 76 | 77 | 下载CentOS7 https://www.jianshu.com/p/a63f47e096e8 78 | 79 | xshell链接服务器 https://blog.csdn.net/zzy1078689276/article/details/77280814 80 | 81 | ``` 82 | [root@192 ~]# cd / 83 | [root@192 /]# pwd 84 | / 85 | [root@192 /]# ls 86 | bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var 87 | [root@192 /]# uname -r 88 | 3.10.0-1127.el7.x86_64 89 | ``` 90 | 91 |  92 | 93 | 94 | 95 | ### Centos安装 96 | 97 | https://docs.docker.com/engine/install/centos/ 98 | 99 | ### 卸载旧的版本 100 | 101 | ``` 102 | # 卸载旧的版本 103 | $ sudo yum remove docker \ 104 | docker-client \ 105 | docker-client-latest \ 106 | docker-common \ 107 | docker-latest \ 108 | docker-latest-logrotate \ 109 | docker-logrotate \ 110 | docker-engine 111 | 112 | ``` 113 | 114 |  115 | 116 | ### 安装基本环境 117 | 118 | 119 | 120 | ``` 121 | # 安装基本的安装包 122 | $ sudo yum install -y yum-utils 123 | ``` 124 | 125 | ! 126 | 127 |  128 | 129 | ### 设置镜像的仓库 130 | 131 | 注意!!下载默认用国外的,太慢不要用! 132 | 133 | 用国内镜像,百度搜索,docker的阿里云镜像地址 134 | 135 | ``` 136 | # 不要用官网默认这个! 137 | $ sudo yum-config-manager \ 138 | --add-repo \ 139 | https://download.docker.com/linux/centos/docker-ce.repo # 默认是国外的 140 | 141 | # 换成下面的 142 | 143 | $ sudo yum-config-manager \ 144 | --add-repo \ 145 | https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # 阿里云镜像 146 | ``` 147 | 148 |  149 | 150 | 直接复制粘贴就OK了 151 | 152 | 更像软件包索引 153 | 154 | ``` 155 | yum makecache fast 156 | ``` 157 | 158 |  159 | 160 | 没有问题的话就是可以用的 161 | 162 | ### 安装docker引擎 163 | 164 | ```python 165 | yum install docker-ce docker-ce-cli containerd.io # docker-ce 社区版 ee 企业版 166 | ``` 167 | 168 | 注意这里会有几个个y/n的判断 169 | 170 |  171 | 172 |  173 | 174 | 要看到Complet再收手! 175 | 176 | 177 | 178 | ### 启动Docker 179 | 180 | ``` 181 | systemctl start docker # 代表启动成功 182 | ``` 183 | 184 | ``` 185 | docker version 186 | ``` 187 | 188 | ``` 189 | Client: Docker Engine - Community 190 | Version: 19.03.11 191 | API version: 1.40 192 | Go version: go1.13.10 193 | Git commit: 42e35e61f3 194 | Built: Mon Jun 1 09:13:48 2020 195 | OS/Arch: linux/amd64 196 | Experimental: false 197 | 198 | Server: Docker Engine - Community 199 | Engine: 200 | Version: 19.03.11 201 | API version: 1.40 (minimum version 1.12) 202 | Go version: go1.13.10 203 | Git commit: 42e35e61f3 204 | Built: Mon Jun 1 09:12:26 2020 205 | OS/Arch: linux/amd64 206 | Experimental: false 207 | containerd: 208 | Version: 1.2.13 209 | GitCommit: 7ad184331fa3e55e52b890ea95e65ba581ae3429 210 | runc: 211 | Version: 1.0.0-rc10 212 | GitCommit: dc9208a3303feef5b3839f4323d9beb36df0a9dd 213 | docker-init: 214 | Version: 0.18.0 215 | GitCommit: fec3683 216 | 217 | ``` 218 | 219 | ``` 220 | docker run hello-world 221 | ``` 222 | 223 |  224 | 225 | 中间一堆是签名信息 226 | 227 | run的运行流程图 228 | 229 |  230 | 231 | 查看下载的镜像 232 | 233 | ``` 234 | docker images 235 | ``` 236 | 237 |  238 | 239 | ### 卸载Docker 240 | 241 | ``` 242 | # 卸载依赖 243 | yum remove docker-ce docker-ce-cli containerd.io 244 | 245 | # 删除资源 246 | rm -rf /var/lib/docker # docker 的默认工作路径 247 | 248 | ``` 249 | 250 | ### 阿里云镜像加速 251 | 252 | 253 | 254 | ``` 255 | sudo mkdir -p /etc/docker # 创建一个陌路 256 | sudo tee /etc/docker/daemon.json <<-'EOF' 257 | { 258 | "registry-mirrors": ["https://uyfgafsw.mirror.aliyuncs.com"] 259 | } 260 | EOF # 编写配置文件 261 | 262 | sudo systemctl daemon-reload # 重启服务 263 | sudo systemctl restart docker # 重启docker 264 | ``` 265 | 266 |  267 | 268 | 269 | 270 | [在线画图软件ProcessOn](https://www.processon.com/) 271 | 272 | ## 底层原理 273 | 274 | Docker是真么工作的? 275 | 276 | Docker是一个Client-Server结构的系统,Docker的守护进程在主机上。通过Socket从客户端访问! 277 | 278 | DockerServer接受到Docker-Client的指令, 279 | 280 |  281 | 282 | Docker为什么比VM快? 283 | 284 | 1. Docker有着比虚拟机更少的抽象层 285 | 2. docker主要用的是宿主机的内核,vm需要Guest OS 286 | 287 |  288 | 289 | 所以说新建一个容器的时候,docker不需要像虚拟机一样重新加载一个操作系统内核,避免引导 290 | 291 | 292 | 293 | ## Docker命令 294 | 295 | ### 帮助命令 296 | 297 | ``` 298 | docker version # 显示docker的基本信息 299 | docker info # 系统信息,镜像和容器的数量 300 | docker 命令 --help # 全部信息 301 | ``` 302 | 303 | [官网文档](https://docs.docker.com/reference/) 304 | 305 |  306 | 307 | 308 | 309 | ### 镜像命令 310 | 311 | #### docker images 312 | 313 | 查看所有本地主机上的镜像 314 | 315 | ```bash 316 | [root@192 ~]# docker images 317 | 318 | ``` 319 | 320 |  321 | 322 | ``` 323 | # 解释 324 | REPOSITORY # 镜像仓库源 325 | TAG # 镜像的标签 326 | IMAGE ID # 镜像的ID 327 | CREATED # 镜像的创建时间 328 | SIZE # 镜像的大小 329 | ``` 330 | 331 | ```bash 332 | --all , -a Show all images (default hides intermediate images) # 显示所有 333 | --digests Show digests 334 | --filter , -f Filter output based on conditions provided 335 | --format Pretty-print images using a Go template 336 | --no-trunc Don’t truncate output 337 | --quiet , -q Only show numeric IDs # 只显示id 338 | ``` 339 | 340 |  341 | 342 | #### docker search 343 | 344 | 搜索仓库中的镜像,相当于网页搜索 345 | 346 | [网页搜索](http://hub.docker.com) 347 | 348 |  349 | 350 | mysql 351 | 352 |  353 | 354 | ``` 355 | docker search mysql 356 | ``` 357 | 358 |  359 | 360 | ``` 361 | docker search --help 362 | ``` 363 | 364 |  365 | 366 | ```bash 367 | # 解释 368 | Options: 369 | -f, --filter filter Filter output based on conditions provided 370 | --format string Pretty-print search using a Go template 371 | --limit int Max number of search results (default 25) 372 | --no-trunc Don't truncate output 373 | 374 | ``` 375 | 376 | ``` 377 | docker search mysql --filter=STARS=3000 # 搜索出Stars大于3000的 378 | ``` 379 | 380 |  381 | 382 | 【视频书签,https://www.bilibili.com/video/BV1og4y1q7M4?p=9】 383 | 384 | 385 | 386 | #### docker pull 387 | 388 | 下载镜像 389 | 390 | ```bash 391 | docker pull mysql # 下载mysql镜像,default tag,默认最新版latest 392 | ``` 393 | 394 | ```bash 395 | [root@192 ~]# sudo systemctl daemon-reload 396 | [root@192 ~]# sudo systemctl restart docker 397 | [root@192 ~]# docker pull mysql 398 | Using default tag: latest # 不写tag默认最新版 399 | latest: Pulling from library/mysql 400 | 8559a31e96f4: Pull complete # layer 分层下载,docker image的核心 联合文件系统 401 | d51ce1c2e575: Pull complete 402 | c2344adc4858: Pull complete 403 | fcf3ceff18fc: Pull complete 404 | 16da0c38dc5b: Pull complete 405 | b905d1797e97: Pull complete 406 | 4b50d1c6b05c: Pull complete 407 | c75914a65ca2: Pull complete 408 | 1ae8042bdd09: Pull complete 409 | 453ac13c00a3: Pull complete 410 | 9e680cd72f08: Pull complete 411 | a6b5dc864b6c: Pull complete 412 | Digest: sha256:8b7b328a7ff6de46ef96bcf83af048cb00a1c86282bfca0cb119c84568b4caf6#签名 413 | Status: Downloaded newer image for mysql:latest 414 | docker.io/library/mysql:latest # 真实地址 415 | 416 | # 即 417 | docker pull mysql 418 | # 等价于 419 | docker pull docker.io/library/mysql:latest 420 | 421 | ``` 422 | 423 | ```bash 424 | 425 | # 指定版本下载 426 | docker pull mysql:5.7 427 | ``` 428 | 429 | 版本来自于官网,版本库https://hub.docker.com/_/mysql 430 | 431 |  432 | 433 | 434 | 435 |  436 | 437 | ``` 438 | docker images 439 | ``` 440 | 441 | 此时查看镜像,可以看到新下载的两个 442 | 443 |  444 | 445 | #### docker rmi 446 | 447 | remove images 448 | 449 | ```bash 450 | # 删除一个 可以通过名称 也可以指定id -f表示删除所有 451 | docker rmi -f 9cfcce23593a 452 | # 删除多个 用空格分隔id 453 | docker rmi -f id id id 454 | # 删除所有 455 | docker rmi -f $(docker images -aq) # images -aq就是查所有镜像id,从而递归删除 456 | ``` 457 | 458 |  459 | 460 | 461 | 462 |  463 | 464 | ### 容器命令 465 | 466 | 说明:有了镜像才能创建容器,linux,下载一个centos镜像来测试学习 467 | 468 | ```bash 469 | docker pull centos 470 | ``` 471 | 472 |  473 | 474 | #### 新建容器并启动 475 | 476 | ```shell 477 | docker run [可选参数] image 478 | 479 | # 参数说明 480 | --name=“Name” # 容器名字,用于区分容器 481 | -d 后台方式运行 482 | -it 使用交互方式运行,进入容器查看内容 483 | -p 指定容器的端口 如-p 8080::8080 484 | -p ip:主机端口:容器端口 485 | -p 主机端口:容器端口 486 | -p 容器端口 487 | 488 | -p 随机指定端口 489 | ``` 490 | 491 | #### 进入退出容器 492 | 493 | ```bash 494 | # 进入 495 | docker run -it centos /bin/bash 496 | # 查看目录 497 | ls 498 | # 退出 499 | exit 500 | ``` 501 | 502 |  503 | 504 | 注意这里面主机名,编程了centos的id 505 | 506 | 这里面就是一个容器,套娃啊 507 | 508 | #### 查看运行的容器 509 | 510 | ``` 511 | # 查看正在运行的容器 512 | docker ps 513 | # 查看曾经运行的容器 514 | docker ps -a 515 | # 显示最近创建的容器,设置显示个数 516 | docker ps -a - n=? 517 | # 只显示容器的编号 518 | docker ps -aq 519 | ``` 520 | 521 | ```shell 522 | [root@192 ~]# docker ps 523 | CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 524 | [root@192 ~]# docker ps -a 525 | CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 526 | 9939864fa2e6 centos "bin/bash" 4 minutes ago Exited (0) 4 minutes ago unruffled_knuth 527 | 5f42e9930435 centos "/bin/bash" 8 minutes ago Exited (0) 4 minutes ago lucid_cannon 528 | a89ddb393d3d bf756fb1ae65 "/hello" 19 hours ago Exited (0) 19 hours ago gracious_bhabha 529 | [root@192 ~]# docker ps -a -n=2 530 | CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 531 | 9939864fa2e6 centos "bin/bash" 6 minutes ago Exited (0) 6 minutes ago unruffled_knuth 532 | 5f42e9930435 centos "/bin/bash" 10 minutes ago Exited (0) 7 minutes ago 533 | [root@192 ~]# docker ps -aq 534 | 9939864fa2e6 535 | 5f42e9930435 536 | a89ddb393d3d 537 | 538 | ``` 539 | 540 | #### 退出容器 541 | 542 | ```shell 543 | # 容器停止退出 544 | exit 545 | # 容器不停止退出 注意必须在英文输入法下,中文输入法不行 546 | Ctrl + P + Q 547 | ``` 548 | 549 | ```shell 550 | [root@192 ~]# docker run -it centos /bin/bash 551 | [root@bfcea13c40cd /]# [root@192 ~]# docker ps ##注意这里会自动给个命令,删掉 552 | CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 553 | bfcea13c40cd centos "/bin/bash" About a minute ago Up About a minute stoic_wilson 554 | edbd9366d959 centos "/bin/bash" 7 minutes ago Up 7 minutes affectionate_bartik 555 | [root@192 ~]# docker exec -it edbd9366d959 /bin/bash ## 再次进入 556 | [root@edbd9366d959 /]# exit ##停止并推出 557 | exit 558 | 559 | 560 | 第一次启动镜像用run 561 | 再次启动容器用exec 562 | 563 | ``` 564 | 565 | #### 删除容器 566 | 567 | ```shell 568 | # 删除指定容器 不能删除正在运行的容器,如果强制删除 rm -f 569 | docker rm 容器id 570 | # 删除所有容器 571 | docker rm -f $(docker ps -aq) 572 | # 删除所有容器 573 | docker ps -a -q|xargs docker rm 574 | ``` 575 | 576 | ```shell 577 | [root@192 ~]# docker ps -a 578 | CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 579 | bfcea13c40cd centos "/bin/bash" 29 minutes ago Up 29 minutes stoic_wilson 580 | edbd9366d959 centos "/bin/bash" 35 minutes ago Up 35 minutes affectionate_bartik 581 | 9939864fa2e6 centos "bin/bash" 48 minutes ago Exited (0) 48 minutes ago unruffled_knuth 582 | 5f42e9930435 centos "/bin/bash" 52 minutes ago Exited (0) 49 minutes ago lucid_cannon 583 | a89ddb393d3d bf756fb1ae65 "/hello" 20 hours ago Exited (0) 20 hours ago gracious_bhabha 584 | [root@192 ~]# docker rm 5f42e9930435 585 | 5f42e9930435 586 | [root@192 ~]# docker rm edbd9366d959 # 注意正在运行的容器不能删除 587 | Error response from daemon: You cannot remove a running container edbd9366d9596c744dd449119269b04de2f2a494e7fc471f6396bcefd94c33fe. Stop the container before attempting removal or force remove 588 | 589 | ``` 590 | 591 | ```shell 592 | [root@192 ~]# docker ps -aq # 所有容器id 593 | bfcea13c40cd 594 | edbd9366d959 595 | 9939864fa2e6 596 | a89ddb393d3d 597 | [root@192 ~]# docker rm -f $(docker ps -aq) # 全部删除 598 | bfcea13c40cd 599 | edbd9366d959 600 | 9939864fa2e6 601 | a89ddb393d3d 602 | 603 | ``` 604 | 605 | #### 启动和停止容器的操作 606 | 607 | ```shell 608 | docker start 609 | docker restart 610 | docker stop 611 | docker kill 612 | ``` 613 | 614 | ```shell 615 | [root@192 ~]# docker run -it centos /bin/bash 616 | [root@7b1a7dd10ea4 /]# exit 617 | exit 618 | [root@192 ~]# docker ps #查看正在运行的 619 | CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 620 | [root@192 ~]# docker ps -a # 查看历史运行过的 621 | CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 622 | 7b1a7dd10ea4 centos "/bin/bash" 54 seconds ago Exited (0) 42 seconds ago fervent_mirzakhani 623 | [root@192 ~]# docker start 7b1a7dd10ea4 # 启动当前这个容器 container id 粘过 来 624 | 7b1a7dd10ea4 625 | [root@192 ~]# docker ps # 查看当前运行容器 发现启动成功 626 | CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 627 | 7b1a7dd10ea4 centos "/bin/bash" 2 minutes ago Up 28 seconds fervent_mirzakhani 628 | [root@192 ~]# docker stop 7b1a7dd10ea4 # 停止运行 629 | 7b1a7dd10ea4 630 | [root@192 ~]# docker ps # 再次查看 没有这个容器了 631 | CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 632 | 633 | 634 | ``` 635 | 636 | ### 常用其他命令 637 | 638 | 【视频书签:https://www.bilibili.com/video/BV1og4y1q7M4?p=11】 639 | 640 | #### 后台启动docker 641 | 642 | ```shell 643 | docker run -d 镜像名 644 | # 用docker ps 查看的时候 发现停止了 645 | 646 | # 后台运行,docker发现前台没有,容器启动后,发现自己没有提供服务,会立刻停止 647 | ``` 648 | 649 | ```shell 650 | Last login: Wed Jun 17 19:47:35 2020 651 | [root@192 ~]# systemctl start docker # 关机后重启了,需要启动docker 652 | [root@192 ~]# docker run -d centos # 运行 653 | 8ce188e5fee31c2fac93c0a405ee1a95c38dbc50cb47c35b19c0039c27558ded 654 | [root@192 ~]# docker ps -a # 查看正在运行的 655 | CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 656 | 8ce188e5fee3 centos "/bin/bash" 19 seconds ago Exited (0) 18 seconds ago tender_dirac 657 | 7b1a7dd10ea4 centos "/bin/bash" 8 hours ago Exited (0) 8 hours ago fervent_mirzakhani 658 | 659 | ``` 660 | 661 | 662 | 663 | #### 查看日志 664 | 665 | ```shell 666 | docker logs 667 | docker logs -f -t --tail n 【id】 668 | 669 | ``` 670 | 671 |  672 | 673 | ```shell 674 | [root@192 ~]# docker logs --help 675 | 676 | Usage: docker logs [OPTIONS] CONTAINER 677 | 678 | Fetch the logs of a container 679 | 680 | Options: 681 | --details Show extra details provided to logs 682 | -f, --follow Follow log output 683 | --since string Show logs since timestamp (e.g. 684 | 2013-01-02T13:23:37) or relative 685 | (e.g. 42m for 42 minutes) 686 | --tail string Number of lines to show from the 687 | end of the logs (default "all") 688 | -t, --timestamps Show timestamps # 时间戳 689 | --until string Show logs before a timestamp (e.g. 690 | 2013-01-02T13:23:37) or relative 691 | (e.g. 42m for 42 minutes) 692 | 693 | ``` 694 | 695 | ```shell 696 | whiel true;do echo shen;sleep 697 | ``` 698 | 699 | 700 | 701 | ```shell 702 | # 运行一个 703 | [root@192 ~]# docker run -it centos /bin/bash 704 | 705 | [root@c2887d35c71d /]# [root@192 ~]# docker ps 706 | CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 707 | c2887d35c71d centos "/bin/bash" 57 seconds ago Up 56 seconds vigorous_kare 708 | 709 | # 查看日志,由于没有运行脚本,所以啥也没显示 710 | [root@192 ~]# docker logs -f -t --tail 10 c2887d35c71d 711 | ^C # ctrl+c退出 712 | 713 | # 运行centos里面加个脚本 714 | [root@192 ~]# docker run -d centos /bin/sh -c "while true;do echo shenzai;sleep 1;done" 715 | cb6d7fbc3f27a064137d58282de97b97365dea2705211ebfbad642079cc1b388 716 | 717 | [root@192 ~]# docker ps 718 | CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 719 | cb6d7fbc3f27 centos "/bin/sh -c 'while t…" 7 seconds ago Up 6 seconds dreamy_almeida 720 | c2887d35c71d centos "/bin/bash" 3 minutes ago Up 3 minutes vigorous_kare 721 | 722 | # 查看日志 发现隔一秒打印一条 723 | [root@192 ~]# docker logs -f -t --tail 10 cb6d7fbc3f27 724 | 2020-06-17T12:02:11.293765084Z shen 725 | 2020-06-17T12:02:12.297675608Z shen 726 | 2020-06-17T12:02:13.301845582Z shen 727 | 728 | 729 | ``` 730 | 731 | #### 查看正在运行的容器信息 732 | 733 | ```shell 734 | [root@192 ~]# docker inspect cb6d7fbc3f27 735 | [ 736 | { 737 | # 容器的完整id 738 | "Id": "cb6d7fbc3f27a064137d58282de97b97365dea2705211ebfbad642079cc1b388", 739 | 740 | # 创建时间 741 | "Created": "2020-06-17T12:00:50.706906186Z", 742 | 743 | # 脚本位置 744 | "Path": "/bin/sh", 745 | 746 | # 运行的脚本 747 | "Args": [ 748 | "-c", 749 | "while true;do echo shenzai;sleep 1;done" 750 | ], 751 | "State": { 752 | "Status": "running", # 状态,正在运行 753 | "Running": true, 754 | "Paused": false, 755 | "Restarting": false, 756 | "OOMKilled": false, 757 | "Dead": false, 758 | "Pid": 1909, # 父进程id 759 | "ExitCode": 0, 760 | "Error": "", 761 | "StartedAt": "2020-06-17T12:00:51.093617477Z", 762 | "FinishedAt": "0001-01-01T00:00:00Z" 763 | }, 764 | 765 | # 来源镜像 766 | "Image": "sha256:831691599b88ad6cc2a4abbd0e89661a121aff14cfa289ad840fd3946f274f1f", 767 | "ResolvConfPath": "/var/lib/docker/containers/cb6d7fbc3f27a064137d58282de97b97365dea2705211ebfbad642079cc1b388/resolv.conf", 768 | "HostnamePath": "/var/lib/docker/containers/cb6d7fbc3f27a064137d58282de97b97365dea2705211ebfbad642079cc1b388/hostname", 769 | "HostsPath": "/var/lib/docker/containers/cb6d7fbc3f27a064137d58282de97b97365dea2705211ebfbad642079cc1b388/hosts", 770 | "LogPath": "/var/lib/docker/containers/cb6d7fbc3f27a064137d58282de97b97365dea2705211ebfbad642079cc1b388/cb6d7fbc3f27a064137d58282de97b97365dea2705211ebfbad642079cc1b388-json.log", 771 | 772 | 773 | "Name": "/dreamy_almeida", 774 | "RestartCount": 0, 775 | "Driver": "overlay2", 776 | "Platform": "linux", 777 | "MountLabel": "", 778 | "ProcessLabel": "", 779 | "AppArmorProfile": "", 780 | "ExecIDs": null, 781 | 782 | # 主机配置 783 | "HostConfig": { 784 | "Binds": null, 785 | "ContainerIDFile": "", 786 | "LogConfig": { 787 | "Type": "json-file", 788 | "Config": {} 789 | }, 790 | "NetworkMode": "default", 791 | "PortBindings": {}, 792 | "RestartPolicy": { 793 | "Name": "no", 794 | "MaximumRetryCount": 0 795 | }, 796 | "AutoRemove": false, 797 | "VolumeDriver": "", 798 | "VolumesFrom": null, 799 | "CapAdd": null, 800 | "CapDrop": null, 801 | "Capabilities": null, 802 | "Dns": [], 803 | "DnsOptions": [], 804 | "DnsSearch": [], 805 | "ExtraHosts": null, 806 | "GroupAdd": null, 807 | "IpcMode": "private", 808 | "Cgroup": "", 809 | "Links": null, 810 | "OomScoreAdj": 0, 811 | "PidMode": "", 812 | "Privileged": false, 813 | "PublishAllPorts": false, 814 | "ReadonlyRootfs": false, 815 | "SecurityOpt": null, 816 | "UTSMode": "", 817 | "UsernsMode": "", 818 | "ShmSize": 67108864, 819 | "Runtime": "runc", 820 | "ConsoleSize": [ 821 | 0, 822 | 0 823 | ], 824 | "Isolation": "", 825 | "CpuShares": 0, 826 | "Memory": 0, 827 | "NanoCpus": 0, 828 | "CgroupParent": "", 829 | "BlkioWeight": 0, 830 | "BlkioWeightDevice": [], 831 | "BlkioDeviceReadBps": null, 832 | "BlkioDeviceWriteBps": null, 833 | "BlkioDeviceReadIOps": null, 834 | "BlkioDeviceWriteIOps": null, 835 | "CpuPeriod": 0, 836 | "CpuQuota": 0, 837 | "CpuRealtimePeriod": 0, 838 | "CpuRealtimeRuntime": 0, 839 | "CpusetCpus": "", 840 | "CpusetMems": "", 841 | "Devices": [], 842 | "DeviceCgroupRules": null, 843 | "DeviceRequests": null, 844 | "KernelMemory": 0, 845 | "KernelMemoryTCP": 0, 846 | "MemoryReservation": 0, 847 | "MemorySwap": 0, 848 | "MemorySwappiness": null, 849 | "OomKillDisable": false, 850 | "PidsLimit": null, 851 | "Ulimits": null, 852 | "CpuCount": 0, 853 | "CpuPercent": 0, 854 | "IOMaximumIOps": 0, 855 | "IOMaximumBandwidth": 0, 856 | "MaskedPaths": [ 857 | "/proc/asound", 858 | "/proc/acpi", 859 | "/proc/kcore", 860 | "/proc/keys", 861 | "/proc/latency_stats", 862 | "/proc/timer_list", 863 | "/proc/timer_stats", 864 | "/proc/sched_debug", 865 | "/proc/scsi", 866 | "/sys/firmware" 867 | ], 868 | "ReadonlyPaths": [ 869 | "/proc/bus", 870 | "/proc/fs", 871 | "/proc/irq", 872 | "/proc/sys", 873 | "/proc/sysrq-trigger" 874 | ] 875 | }, 876 | 877 | # 其他配置 878 | "GraphDriver": { 879 | "Data": { 880 | "LowerDir": "/var/lib/docker/overlay2/3675586ebbd79cd72d2562a90c9380627a331c563724c0dac091f92600af4907-init/diff:/var/lib/docker/overlay2/7f79322e0f58d651a84a555dadd83d92537788172525945d3f538dd95dce336c/diff", 881 | "MergedDir": "/var/lib/docker/overlay2/3675586ebbd79cd72d2562a90c9380627a331c563724c0dac091f92600af4907/merged", 882 | "UpperDir": "/var/lib/docker/overlay2/3675586ebbd79cd72d2562a90c9380627a331c563724c0dac091f92600af4907/diff", 883 | "WorkDir": "/var/lib/docker/overlay2/3675586ebbd79cd72d2562a90c9380627a331c563724c0dac091f92600af4907/work" 884 | }, 885 | "Name": "overlay2" 886 | }, 887 | 888 | "Mounts": [], # 挂载 889 | 890 | # 基本配置 891 | "Config": { 892 | "Hostname": "cb6d7fbc3f27", 893 | "Domainname": "", 894 | "User": "", 895 | "AttachStdin": false, 896 | "AttachStdout": false, 897 | "AttachStderr": false, 898 | "Tty": false, 899 | "OpenStdin": false, 900 | "StdinOnce": false, 901 | "Env": [ 902 | "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" 903 | ], # 基本环境变量,这里没有Java 904 | 905 | # 基本命令 906 | "Cmd": [ 907 | "/bin/sh", 908 | "-c", 909 | "while true;do echo shenzai;sleep 1;done" 910 | ], 911 | "Image": "centos", 912 | "Volumes": null, 913 | "WorkingDir": "", 914 | "Entrypoint": null, 915 | "OnBuild": null, 916 | "Labels": { 917 | "org.label-schema.build-date": "20200611", 918 | "org.label-schema.license": "GPLv2", 919 | "org.label-schema.name": "CentOS Base Image", 920 | "org.label-schema.schema-version": "1.0", 921 | "org.label-schema.vendor": "CentOS" 922 | } 923 | }, 924 | 925 | # 网卡,比如现在用的是桥接的网卡 926 | "NetworkSettings": { 927 | "Bridge": "", 928 | "SandboxID": "4d701985d7e77aa153790b697b2f38a61e20555c224b7675e4bf650b82799882", 929 | "HairpinMode": false, 930 | "LinkLocalIPv6Address": "", 931 | "LinkLocalIPv6PrefixLen": 0, 932 | "Ports": {}, 933 | "SandboxKey": "/var/run/docker/netns/4d701985d7e7", 934 | "SecondaryIPAddresses": null, 935 | "SecondaryIPv6Addresses": null, 936 | "EndpointID": "8a6c71e2bafb19ca7dfd85445ccc4bef6d17467360a243d624089e676a24a018", 937 | "Gateway": "172.17.0.1", 938 | "GlobalIPv6Address": "", 939 | "GlobalIPv6PrefixLen": 0, 940 | "IPAddress": "172.17.0.3", 941 | "IPPrefixLen": 16, 942 | "IPv6Gateway": "", 943 | "MacAddress": "02:42:ac:11:00:03", 944 | "Networks": { 945 | "bridge": { 946 | "IPAMConfig": null, 947 | "Links": null, 948 | "Aliases": null, 949 | "NetworkID": "22b0fd2290ccbc4e066a75d3f01bd8bf32ee4352c5bbcfc9f911287219219571", 950 | "EndpointID": "8a6c71e2bafb19ca7dfd85445ccc4bef6d17467360a243d624089e676a24a018", 951 | "Gateway": "172.17.0.1", 952 | "IPAddress": "172.17.0.3", 953 | "IPPrefixLen": 16, 954 | "IPv6Gateway": "", 955 | "GlobalIPv6Address": "", 956 | "GlobalIPv6PrefixLen": 0, 957 | "MacAddress": "02:42:ac:11:00:03", 958 | "DriverOpts": null 959 | } 960 | } 961 | } 962 | } 963 | ] 964 | 965 | ``` 966 | 967 | 968 | 969 | ```shell 970 | # 停止正在疯狂输出的那个容器 971 | [root@192 ~]# docker stop cb6d7fbc3f27 972 | cb6d7fbc3f27 973 | ``` 974 | 975 | #### 进入当前正在运行的容器 976 | 977 | ```shell 978 | # 我们通常容器都是使用后台方式运行的e 979 | 980 | docker exec -it 容器id bashSHELL 981 | 982 | # 测试 983 | [root@192 ~]# docker ps 984 | CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 985 | c2887d35c71d centos "/bin/bash" 35 minutes ago Up 35 minutes vigorous_kare 986 | [root@192 ~]# docker exec -it c2887d35c71d /bin/bash 987 | [root@c2887d35c71d /]# ls 988 | bin etc lib lost+found mnt proc run srv tmp var 989 | dev home lib64 media opt root sbin sys usr 990 | [root@c2887d35c71d /]# ps -ef 991 | UID PID PPID C STIME TTY TIME CMD 992 | root 1 0 0 11:57 pts/0 00:00:00 /bin/bash 993 | root 14 0 0 12:32 pts/1 00:00:00 /bin/bash 994 | root 28 14 0 12:32 pts/1 00:00:00 ps -ef 995 | [root@c2887d35c71d /]# c2887d35c71d 996 | [root@c2887d35c71d /]# exit 997 | exit 998 | 999 | # 方式二 1000 | [root@192 ~]# docker attach c2887d35c71d 1001 | [root@c2887d35c71d /]# 1002 | 1003 | # 区别 1004 | # docker exec # 进入容器后开启一个新的终端,可以在里面操作(常用) 1005 | # docker attach 进入容器正在执行的终端,不会启动新的进程 1006 | 1007 | ``` 1008 | 1009 | 1010 | 1011 | #### 从容器内拷贝文件到主机上 1012 | 1013 | ```shell 1014 | # 运行 1015 | [root@192 ~]# docker run -it centos 1016 | # ctrl P Q 不关闭退出,查看 1017 | [root@0569081aa89c /]# [root@192 ~]# docker ps 1018 | CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 1019 | 0569081aa89c centos "/bin/bash" 19 seconds ago Up 19 seconds 1020 | hopeful_chebyshev 1021 | 1022 | # 查看主机home下无文件 1023 | [root@192 ~]# cd /home 1024 | [root@192 home]# ls 1025 | 1026 | # 进入正在运行的容器 1027 | [root@192 home]# docker attach 0569081aa89c 1028 | 1029 | # 进入容器home目录 1030 | [root@0569081aa89c /]# cd /home 1031 | 1032 | # 在目录中创建java文件 1033 | [root@0569081aa89c home]# touch test.java 1034 | 1035 | # 退出并停止容器 1036 | [root@0569081aa89c home]# exit 1037 | exit 1038 | 1039 | # 查看现在运行的容器 1040 | [root@192 home]# docker ps 1041 | CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 1042 | 1043 | # 容器虽然被停止,但是数据都会保留 1044 | [root@192 home]# docker ps -a 1045 | CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 1046 | 0569081aa89c centos "/bin/bash" 3 minutes ago Exited (0) 8 seconds ago hopeful_chebyshev 1047 | f589e5684a01 centos "/bin/bash" 44 minutes ago Exited (0) 44 minutes ago cranky_easley 1048 | cb6d7fbc3f27 centos "/bin/sh -c 'while t…" 54 minutes ago Exited (137) 42 minutes ago dreamy_almeida 1049 | c2887d35c71d centos "/bin/bash" 58 minutes ago Exited (127) 16 minutes ago vigorous_kare 1050 | 8ce188e5fee3 centos "/bin/bash" About an hour ago Exited (0) About an hour ago tender_dirac 1051 | 7b1a7dd10ea4 centos "/bin/bash" 9 hours ago Exited (0) 9 hours ago fervent_mirzakhani 1052 | 1053 | # 容器数据拷贝到主机 1054 | [root@192 home]# docker cp 0569081aa89c:/home/test.java /home 1055 | [root@192 home]# ls 1056 | test.java 1057 | 1058 | # 拷贝是一个手动过程,未来我们使用 -v 卷的技术,可以实现自动同步 /home /home 1059 | ``` 1060 | 1061 | #### 查看内容占用 1062 | 1063 | ```shell 1064 | docker stats 1065 | 1066 | ``` 1067 | 1068 | 1069 | 1070 | 1071 | 1072 | #### 小结 1073 | 1074 |  1075 | 1076 | ```shell 1077 | [root@192 home]# docker --help 1078 | 1079 | Usage: docker [OPTIONS] COMMAND 1080 | 1081 | A self-sufficient runtime for containers 1082 | 1083 | Options: 1084 | --config string Location of client config 1085 | files (default "/root/.docker") 1086 | -c, --context string Name of the context to use to 1087 | connect to the daemon 1088 | (overrides DOCKER_HOST env var 1089 | and default context set with 1090 | "docker context use") 1091 | -D, --debug Enable debug mode 1092 | -H, --host list Daemon socket(s) to connect to 1093 | -l, --log-level string Set the logging level 1094 | ("debug"|"info"|"warn"|"error"|"fatal") (default "info") 1095 | --tls Use TLS; implied by --tlsverify 1096 | --tlscacert string Trust certs signed only by 1097 | this CA (default 1098 | "/root/.docker/ca.pem") 1099 | --tlscert string Path to TLS certificate file 1100 | (default "/root/.docker/cert.pem") 1101 | --tlskey string Path to TLS key file (default 1102 | "/root/.docker/key.pem") 1103 | --tlsverify Use TLS and verify the remote 1104 | -v, --version Print version information and quit 1105 | 1106 | Management Commands: 1107 | builder Manage builds 1108 | config Manage Docker configs 1109 | container Manage containers 1110 | context Manage contexts 1111 | engine Manage the docker engine 1112 | image Manage images 1113 | network Manage networks 1114 | node Manage Swarm nodes 1115 | plugin Manage plugins 1116 | secret Manage Docker secrets 1117 | service Manage services 1118 | stack Manage Docker stacks 1119 | swarm Manage Swarm 1120 | system Manage Docker 1121 | trust Manage trust on Docker images 1122 | volume Manage volumes 1123 | 1124 | Commands: 1125 | attach Attach local standard input, output, and error streams to a running container 1126 | build Build an image from a Dockerfile 1127 | commit Create a new image from a container's changes 1128 | cp Copy files/folders between a container and the local filesystem 1129 | create Create a new container 1130 | diff Inspect changes to files or directories on a container's filesystem 1131 | events Get real time events from the server 1132 | exec Run a command in a running container 1133 | export Export a container's filesystem as a tar archive 1134 | history Show the history of an image 1135 | images List images 1136 | import Import the contents from a tarball to create a filesystem image 1137 | info Display system-wide information 1138 | inspect Return low-level information on Docker objects 1139 | kill Kill one or more running containers 1140 | load Load an image from a tar archive or STDIN 1141 | login Log in to a Docker registry 1142 | logout Log out from a Docker registry 1143 | logs Fetch the logs of a container 1144 | pause Pause all processes within one or more containers 1145 | port List port mappings or a specific mapping for the container 1146 | ps List containers 1147 | pull Pull an image or a repository from a registry 1148 | push Push an image or a repository to a registry 1149 | rename Rename a container 1150 | restart Restart one or more containers 1151 | rm Remove one or more containers 1152 | rmi Remove one or more images 1153 | run Run a command in a new container 1154 | save Save one or more images to a tar archive (streamed to STDOUT by default) 1155 | search Search the Docker Hub for images 1156 | start Start one or more stopped containers 1157 | stats Display a live stream of container(s) resource usage statistics 1158 | stop Stop one or more running containers 1159 | tag Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE 1160 | top Display the running processes of a container 1161 | unpause Unpause all processes within one or more containers 1162 | update Update configuration of one or more containers 1163 | version Show the Docker version information 1164 | wait Block until one or more containers stop, then print their exit codes 1165 | 1166 | ``` 1167 | 1168 | 1169 | 1170 |  1171 | 1172 | 1173 | 1174 |  1175 | 1176 | 1177 | 1178 |  1179 | 1180 | #### 作业练习 1181 | 1182 | ##### 部署Nginx 1183 | 1184 |  1185 | 1186 | ```shell 1187 | # 官网搜索nginx,可以看到帮助文档 1188 | 1189 | # 下载镜像 1190 | [root@192 home]# docker pull nginx 1191 | Using default tag: latest 1192 | latest: Pulling from library/nginx 1193 | 8559a31e96f4: Pull complete 1194 | 8d69e59170f7: Pull complete 1195 | 3f9f1ec1d262: Pull complete 1196 | d1f5ff4f210d: Pull complete 1197 | 1e22bfa8652e: Pull complete 1198 | Digest: sha256:21f32f6c08406306d822a0e6e8b7dc81f53f336570e852e25fbe1e3e3d0d0133 1199 | Status: Downloaded newer image for nginx:latest 1200 | docker.io/library/nginx:latest 1201 | 1202 | # 查看镜像 1203 | [root@192 home]# docker images 1204 | REPOSITORY TAG IMAGE ID CREATED SIZE 1205 | centos latest 831691599b88 13 hours ago 215MB 1206 | nginx latest 2622e6cca7eb 7 days ago 132MB 1207 | 1208 | # 运行测试 1209 | # -d 后台运行,--name 命名,-p 暴露端口,3344服务器、宿主机的端口,容器内部端口 1210 | [root@192 home]# docker run -d --name nginx01 -p:3344:80 nginx 1211 | 38dbf7bdcaef232d269b7184d91e44e06087181b5ee929494e177ad526810fa8 1212 | [root@192 home]# docker ps 1213 | CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 1214 | 38dbf7bdcaef nginx "/docker-entrypoint.…" 7 seconds ago Up 6 seconds 0.0.0.0:3344->80/tcp nginx01 1215 | 1216 | # 使用3344可以访问成功 1217 | [root@192 home]# curl localhost:3344 1218 | 1219 | 1220 |
1221 |If you see this page, the nginx web server is successfully installed and 1233 | working. Further configuration is required.
1234 | 1235 |For online documentation and support please refer to
1236 | nginx.org.
1237 | Commercial support is available at
1238 | nginx.com.
Thank you for using nginx.
1241 | 1242 | 1243 | 1244 | ``` 1245 | 1246 | 端口暴露 1247 | 1248 |  1249 | 1250 | 可以公网访问 1251 | 1252 | 找到服务器地址 1253 | 1254 |  1255 | 1256 | 浏览器输入 192.168.147.132:3344/ 1257 | 1258 |  1259 | 1260 | ```shell 1261 | [root@192 home]# docker ps 1262 | CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 1263 | 38dbf7bdcaef nginx "/docker-entrypoint.…" 21 minutes ago Up 21 minutes 0.0.0.0:3344->80/tcp nginx01 1264 | 1265 | # 进入容器 1266 | [root@192 home]# docker exec -it nginx01 /bin/bash 1267 | 1268 | # 查一下nginx在哪 1269 | root@38dbf7bdcaef:/# whereis nginx 1270 | nginx: /usr/sbin/nginx /usr/lib/nginx /etc/nginx /usr/share/nginx 1271 | 1272 | # 到这个目录 1273 | root@38dbf7bdcaef:/# cd /etc/nginx 1274 | root@38dbf7bdcaef:/etc/nginx# ls 1275 | conf.d koi-utf mime.types nginx.conf uwsgi_params 1276 | fastcgi_params koi-win modules scgi_params win-utf 1277 | 1278 | # 退出 1279 | root@38dbf7bdcaef:/etc/nginx# exit 1280 | exit 1281 | 1282 | # 停止 1283 | [root@192 home]# docker stop 38dbf7bdcaef 1284 | 38dbf7bdcaef 1285 | 1286 | 1287 | ``` 1288 | 1289 | 1290 | 1291 | 再次刷新网页,服务关闭 1292 | 1293 | 思考问题:每次改动nginx配置文件,都需要进入容器内部,十分麻烦,要是可以在容器外部提供一个映射路径,达到在容器修改文件名,容器内部就可以自动修改?-v 数据卷技术! 1294 | 1295 | ##### 部署tomcat 1296 | 1297 |  1298 | 1299 | 【视频书签:https://www.bilibili.com/video/BV1og4y1q7M4?p=15】 1300 | 1301 | 【20200618毕竟生产力工具,加油搞,这周一定刷完!!每次关机都要重连,麻烦(*╹▽╹*)】 1302 | 1303 | 1304 | 1305 | 在docker hub上查看版本号和使用方法 1306 | 1307 |  1308 | 1309 | 官方文档一定要翻烂,超多版本,我的天呐~ 1310 | 1311 | ###### 官方方法 1312 | 1313 | ```shell 1314 | docker run -it --rm tomcat:9.0 1315 | 1316 | # docker run 可以不用pull,能自动下载 1317 | # -it 直接进去运行 1318 | # --rm 是什么意思?入门的意思? 1319 | # 我们之前的启动都是后台,停止了容器之后,容器还是可以查到 1320 | # 写了--rm,类似阅后即焚模式,用完即删除,这种通常用来测试 1321 | 1322 | # 最后冒号查好的版本号 1323 | ``` 1324 | 1325 | 1326 | 1327 |  1328 | 1329 |  1330 | 1331 | ctrl+c退出 1332 | 1333 | ```shell 1334 | docker ps -a 1335 | ``` 1336 | 1337 |  1338 | 1339 | 可以看到并没有tomcat,印证阅后即焚模式,容器会删除,镜像不会删除 1340 | 1341 | 平时不建议这样搞 1342 | 1343 | ###### 正常方法 1344 | 1345 | ```shell 1346 | docker pull tomcat:9.0 # 之前下过了,应该不用下了,这里老师讲错了 1347 | ``` 1348 | 1349 | 1350 | 1351 |  1352 | 1353 | ```shell 1354 | # 启动运行,应该加上版本号 1355 | docker run -d -p 3355:8080 --name tomcat01 tomcat 1356 | ``` 1357 | 1358 |  1359 | 1360 | 1361 | 1362 | ```shell 1363 | # 进入容器 1364 | docker exec -it tomcat01 /bin/bash 1365 | ``` 1366 | 1367 |  1368 | 1369 | 发现问题 1370 | 1371 | 1. linux命令少了 1372 | 2. 没有webapps 1373 | 1374 |  1375 | 1376 | 这是阿里云镜像的原因:默认使用最小镜像,所有不必要的都剔除了,保证最小可运行环境 1377 | 1378 |  1379 | 1380 | 1381 | 1382 | 再次找到结构 1383 | 1384 |  1385 | 1386 | 在浏览器中输入:http://192.168.147.132:3355/ 1387 | 1388 |  1389 | 1390 | 思考问题:我们以后部署项目,如果每次都要进入容器是不是身份麻烦?我要是可以在容器外部提供一个映射路径,webapps,我们在外部放置项目,就自动同步到内部就好了! 1391 | 1392 | docker容器 tomcat+网站 1393 | 1394 | docker mysql 1395 | 1396 | ##### 部署es+kibana 1397 | 1398 |  1399 | 1400 | 1401 | 1402 | ```shell 1403 | # es 暴露的端口很多 1404 | # es 十分耗内存 1405 | # es 的数据一般需要放置到安全目录!挂载 1406 | 1407 | # 启动 elasticsearch 1408 | $ docker run -d --name elasticsearch01 -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.6.2 1409 | 1410 | # 查看内存占用情况 1411 | docker stats 1412 | ``` 1413 | 1414 |  1415 | 1416 | ```shell 1417 | # 先感觉stop一下 1418 | docker stop ba18713ca536 1419 | ``` 1420 | 1421 | 1422 | 1423 |  1424 | 1425 | 1426 | 1427 | ```shell 1428 | # 通过 -e 限制内存 1429 | $ docker run -d --name elasticsearch02 -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS=“-Xms64m -Xmx512m” elasticsearch:7.6.2 1430 | ``` 1431 | 1432 |  1433 | 1434 | 没成功啊,SEI能告诉我为啥!! 1435 | 1436 | ```shell 1437 | docker run -d --name elasticsearch02 -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xmx512m" elasticsearch:7.6.2 1438 | ``` 1439 | 1440 | >py0003null大佬: 1441 | >“ES_JAVA_OPTS=-Xms64m -Xmx512m” 1442 | > 1443 | >py0003null大佬: 1444 | >引号提前试试 1445 | 1446 | 原因是引号!!你没觉得怪怪的嘛 1447 | 1448 |  1449 | 1450 | 此时查看stats,发现内存占用在控制范围内 1451 | 1452 |  1453 | 1454 | ctrl + C退出,记得stop 1455 | 1456 |  1457 | 1458 | ##### 思考:用kibana链接elasticsearch 1459 | 1460 |  1461 | 1462 | 1463 | 1464 | ### 可视化 1465 | 1466 | - portainer(先用这个) 1467 | - Rancher(CI/CD时用) 1468 | 1469 | #### portainer 1470 | 1471 | Docker图像化界面管理工具,提供一个后台面板供我们操作! 1472 | 1473 | ```shell 1474 | docker run -d -p 8088:9000 --restart=always -v /var/run/docker.sock:/var/run/docker --privileged=true portainer/portainer 1475 | ``` 1476 | 1477 |  1478 | 1479 | 访问外网8088 1480 | 1481 |  1482 | 1483 | 用户名 1484 | 1485 | 密码 1486 | 1487 |  1488 | 1489 | 失败,不知道发生了啥 1490 | 1491 |  1492 | 1493 |  1494 | 1495 | 1496 | 1497 | ### 1498 | 1499 | 1500 | 1501 | ## Docker镜像 1502 | 1503 | ### 原理 1504 | 1505 | UnionFS 联合文件系统 1506 | 1507 |  1508 | 1509 | bootfs:boot file system 1510 | 1511 | rootfs:root file system 1512 | 1513 |  1514 | 1515 | 1516 | 1517 | 1518 | 1519 |  1520 | 1521 |  1522 | 1523 | 1524 | 1525 |  1526 | 1527 | Docker镜像都是只读的,当容器启动时,一个新的可写层被加到镜像的顶部,这一层就是我们通常说的容器层,容器层之下的都叫镜像层 1528 | 1529 |  1530 | 1531 | 1532 | 1533 | ### commit提交镜像 1534 | 1535 | ```shell 1536 | docker commit # 提交容器成为一个新的副本 1537 | docker commit -m="提交的描述信息" -a="作者" 容器id 目标镜像名:[TAG] 1538 | ``` 1539 | 1540 | ```shell 1541 | docker images 1542 | docker run -it -p 8080:8080 tomcat 1543 | ``` 1544 | 1545 |  1546 | 1547 | 这是一个前台程序 1548 | 1549 |  1550 | 1551 | 将webapps.dist里面所有的文件拷贝到webapps里面,其中-r必须有,表示目录递归拷贝 1552 | 1553 |  1554 | 1555 | 1556 | 1557 |  1558 | 1559 | ```shell 1560 | docker commit -a="paidaxing" -m="add webapps app" 当前容器的id tomcat02:1.0 1561 | ``` 1562 | 1563 |  1564 | 1565 | 发现新的版本,比之前的大了一些,因为里面记录了我们的改动 1566 | 1567 | > 如果想保存当前容器的状态,可以通过commit提交,获得一个镜像 1568 | > 1569 | > 好比我们以前学习VM的时候的快照 1570 | > 1571 | > 到这里算是入门了 1572 | > 1573 | > 接下来三个部分是docker的精髓 1574 | 1575 | 1576 | 1577 | ## 容器数据卷 1578 | 1579 | ### 什么是容器卷 1580 | 1581 | docker是要将应用和环境打包成一个镜像 1582 | 1583 | 这样,数据就不应该在容器中,否则容器删除,数据就会丢失,这就是删库跑路 1584 | 1585 | 故容器之间要有一个数据共享技术 1586 | 1587 | 在Docker容器中产生的数据,同步到本地,这就是卷技术 1588 | 1589 | 本质上是一个目录挂载,将容器内的目录挂载到虚拟机上 1590 | 1591 |  1592 | 1593 | 目的:容器的持久化和同步操作 1594 | 1595 | 容器间可以数据共享 1596 | 1597 | ### 使用数据卷 1598 | 1599 | 方式一:直接使用命令来挂载 1600 | 1601 | ```shell 1602 | docker run -it -v -p 1603 | # -it 交互式进入 1604 | # -v volume卷技术 1605 | # -p 主机端口 1606 | ``` 1607 | 1608 |  1609 | 1610 | 新开一个窗口 1611 | 1612 | ```shell 1613 | docker inspect 容器id 1614 | ``` 1615 | 1616 | 1617 | 1618 |  1619 | 1620 | 找到挂载信息Mounts 1621 | 1622 |  1623 | 1624 | 测试 1625 | 1626 |  1627 | 1628 | 容器停止后,修改主机文件,再启动容器的时候,数据同样改变 1629 | 1630 | 双向同步 1631 | 1632 | ### 实战安装mysql 1633 | 1634 | MySQL的数据持久化命令 1635 | 1636 | ```shell 1637 | docker search mysql 1638 | 1639 | # 拉取 1640 | docker pull mysql:5.7 1641 | 1642 | # 挂载 1643 | docker run -d -p 3310:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql5.7 1644 | 1645 | -d 后台运行 1646 | -p 端口映射 1647 | -v 卷挂载 1648 | -e 环境配置 安装启动mysql需要配置密码 1649 | --name 容器名字 1650 | 1651 | ``` 1652 | 1653 |  1654 | 1655 | 链接测试:打开SQLyog 1656 | 1657 |  1658 | 1659 | 点 测试链接 1660 | 1661 |  1662 | 1663 | 点 链接 1664 | 1665 |  1666 | 1667 | ### 具名和匿名挂载 1668 | 1669 | 【视频书签:https://www.bilibili.com/video/BV1og4y1q7M4?p=23】 1670 | 1671 |  1672 | 1673 |  1674 | 1675 | ### 1676 | 1677 | DockerFile使用来构建docker镜像的文件 1678 | 1679 |  1680 | 1681 | > kas: 1682 | > 没有安装吧? 1683 | > 1684 | > kas: 1685 | > 安装一下就可以了 1686 | > 1687 | > py9001021曾叙坚: 1688 | > centos 默认使用vi写内容,vim需要下载 1689 | > 1690 | > py9001021曾叙坚: 1691 | > 是的,需要下载vim才能使用 1692 | > 1693 | > YF: 1694 | > 配置可以改下,字体就很炫酷了 1695 | > 1696 | > 都建民: 1697 | > 用vi 试试 1698 | > 1699 | > 都建民: 1700 | > 你没有安装vim 1701 | > 1702 | > 都建民: 1703 | > yum install vim 1704 | > 1705 | > 都建民: 1706 | > 试试这个命令 1707 | 1708 | ```shell 1709 | yum install vim # 编辑文件的,没有装一下 1710 | ``` 1711 | 1712 |  1713 | 1714 | 安装完之后就可以运行这个命令了 1715 | 1716 |  1717 | 1718 | ```shell 1719 | # 镜像是一层一层的,脚本是一行一行的 1720 | # 指令都是大写的 1721 | # 这里的每个命令可以理解为镜像的一层 1722 | 1723 | FROM centos 1724 | 1725 | VOLUME ["volume01","volume02"] # 再创建镜像的时候就挂载出来 1726 | 1727 | CMD echo "---end---" 1728 | CMD /bin/bash 1729 | 1730 | ``` 1731 | 1732 |  1733 | 1734 | 想保存并退出 1735 | 1736 | >Wesley.: 1737 | >shift 加 冒号 1738 | 1739 | 1740 | 1741 |  1742 | 1743 | ```shell 1744 | cat dockerfile1 1745 | 1746 | docker build -f dockerfile1 -t padaxing/centos:1.0 . # 最后的点很重要 镜像名不能有/ 1747 | ``` 1748 | 1749 |  1750 | 1751 | ```shell 1752 | docker images 1753 | ``` 1754 | 1755 |  1756 | 1757 | 启动生成的镜像 1758 | 1759 |  1760 | 1761 | 在容器内部创建一个文件 1762 | 1763 |  1764 | 1765 | 查看Mounts,Source对应容器外目录,匿名挂载卷 1766 | 1767 |  1768 | 1769 | 测试一下,在container volume01下生成文件 1770 | 1771 |  1772 | 1773 | 在主机挂载路径下,也同样生成 1774 | 1775 | ### 多个容器数据共享 1776 | 1777 | 【视频书签:https://www.bilibili.com/video/BV1og4y1q7M4?p=25】 1778 | 1779 |  1780 | 1781 | 看一下有啥images 1782 | 1783 |  1784 | 1785 | 启动docker01,用之前建的padaxing/centos 1.0 镜像 1786 | 1787 | ```shell 1788 | docker run -it --name docker01 padaxing/centos:1.0 # 1.0必须写 1789 | ``` 1790 | 1791 |  1792 | 1793 | 1794 | 1795 | 当前这个ctrl+p+q不停止退出 1796 | 1797 |  1798 | 1799 | 依次启动docker02、docker03 1800 | 1801 | ```shell 1802 | docker run -it --name docker02 --volumes-from docker01 padaxing/centos:1.0 1803 | ``` 1804 | 1805 | docker02继承docker01的volumes 1806 | 1807 | 可以验证,在docker01下加一个数据,在docker02下也会出现 1808 | 1809 |  1810 | 1811 | 创建docker03,同样继承docker01 1812 | 1813 | ```shell 1814 | docker run -it --name docker03 --volumes-from docker01 padaxing/centos:1.0 1815 | ``` 1816 | 1817 |  1818 | 1819 | 在docker03的volume01下建立文件,在docker01的volume01下同样也有 1820 | 1821 | 即通过--volumes-from 可以实现不同容器间的数据共享 1822 | 1823 | 删除docker01,数据还在 1824 | 1825 | ```shell 1826 | docker rm -f 1827 | ``` 1828 | 1829 |  1830 | 1831 | 可以看到,删除docker01,进入docker02,数据依然在 1832 | 1833 | 结论: 1834 | 1835 | 容器之间配置信息的传递,数据卷容器的生命周期一直持续到没有容器使用位置 1836 | 1837 | 但是如果持久化到了本地,即使所有容器删除了,本地数据是不会删除的 1838 | 1839 | ------ 1840 | 1841 | ## DockerFile 1842 | 1843 | 是用来构建docker镜像的文件,可以理解为命令参数脚本 1844 | 1845 | 构建步骤: 1846 | 1847 | 1. 编写一个dockerfile文件 1848 | 2. docker build 构建成为一个镜像 1849 | 3. docker run运行镜像 1850 | 4. docker push 发布镜像(DockerHub、阿里云镜像仓库 私有/共有) 1851 | 1852 | 这个写一个项目时一样的 1853 | 1854 | ### 官方DockerFile示例 1855 | 1856 | 看一下官方的DockerFile 1857 | 1858 |  1859 | 1860 | 可以看到官方镜像都是基础包,很多功能没有,我们通常会自己搭建自己的镜像 1861 | 1862 | 官方既然可以制作镜像,我们亦可以 1863 | 1864 | ----- 1865 | 1866 | ### DockerFile基础知识 1867 | 1868 | 1. 每个指令都必须是大写字母 1869 | 2. 按照从上到下顺序执行 1870 | 3. *#*表示注释 1871 | 4. 每一个指令都会创建体检一个新的镜像层,并提交 1872 | 1873 |  1874 | 1875 | docker是面向开发的,我们以后要发布项目,做镜像,就要编写dockerfile文件,这个文件十分简单! 1876 | 1877 | Docker镜像逐渐成为企业的交付标准,必须掌握! 1878 | 1879 | --- 1880 | 1881 | ### DockerFile命令 1882 | 1883 |  1884 | 1885 | ### 1886 | 1887 | ```shell 1888 | FROM # 基础镜像 比如centos 1889 | MAINTAINER # 镜像是谁写的 姓名+邮箱 1890 | RUN # 镜像构建时需要运行的命令 1891 | ADD # 添加,比如添加一个tomcat压缩包 1892 | WORKDIR # 镜像的工作目录 1893 | VOLUME # 挂载的目录 1894 | EXPOSE # 指定暴露端口,跟-p一个道理 1895 | RUN # 最终要运行的 1896 | CMD # 指定这个容器启动的时候要运行的命令,只有最后一个会生效,而且可被替代 1897 | ENTRYPOINT # 指定这个容器启动的时候要运行的命令,可以追加命令 1898 | ONBUILD # 当构建一个被继承Dockerfile 这个时候运行ONBUILD指定,触发指令 1899 | COPY # 将文件拷贝到镜像中 1900 | ENV # 构建的时候设置环境变量 1901 | ``` 1902 | 1903 | ### 实战构建自己的centos 1904 | 1905 | Docker Hub中99%的镜像都是从FROM scratch开始的 1906 | 1907 | 添加centos7的压缩包 1908 | 1909 | ```shell 1910 | # 创建一个自己的centos 1911 | 1912 | # 进入home目录 1913 | cd /home 1914 | 1915 | # 创建一个目录,之后的东西都保存到这里 1916 | mkdir dockerfile 1917 | # 进入这个目录 1918 | cd dockerfile/ 1919 | # 创建一个dockerfile,名字叫mydockerfile 1920 | vim mydockerfile-centos 1921 | 1922 | 1923 | ``` 1924 | 1925 | xshell新开一个界面 1926 | 1927 | ```shell 1928 | # 官方默认centos 1929 | docker run -it centos 1930 | pwd # 官方默认有pwd命令 1931 | vim # 官方默认没有vim命令 1932 | ifconfig # 官方默认没有ifconfig命令 1933 | ``` 1934 | 1935 |  1936 | 1937 | 回到mydockerfile 1938 | 1939 |  1940 | 1941 | ```shell 1942 | # 下面给官方centos加上自定义的内容 1943 | FROM centos 1944 | MAINTAINER padaxing<010301200@hai.com> 1945 | 1946 | ENV MYPATH /usr/local 1947 | WORKDIR $MYPATH 1948 | 1949 | RUN yum -y install vim 1950 | RUN yum -y install net-tools 1951 | 1952 | EXPOSE 80 1953 | 1954 | CMD echo $MYPATH 1955 | CMD echo "---end---" 1956 | CMD /bin/bash 1957 | ``` 1958 | 1959 |  1960 | 1961 | ESC, shif + : 输入wq保存并退出 1962 | 1963 | 如果写错了需要修改、 1964 | 1965 | ```shell 1966 | vim mydockerfile-centos 1967 | # 进入之后按i或者INSERT键即可修改 1968 | ``` 1969 | 1970 | 1971 | 1972 | 下面通过这个这个文件创建镜像 1973 | 1974 | ```shell 1975 | docker build -f dockerfile-centos -t mycentos:0.1 . 1976 | ``` 1977 | 1978 |  1979 | 1980 | 依次执行命令 1981 | 1982 |  1983 | 1984 | 最终返回Successfully表示成功 1985 | 1986 |  1987 | 1988 | ```shell 1989 | docker run -it mycentos:0.1 # 版本号必须写,不然他会去找最新的 1990 | pwd 1991 | vim 1992 | ifconfig 1993 | ``` 1994 | 1995 |  1996 | 1997 | 这时可以看到这些功能都有了 1998 | 1999 | 可以通过查看docker构建历史 2000 | 2001 |  2002 | 2003 | 可以看到当前这个镜像是怎么一步一步构建起来的 2004 | 2005 | 我们平时拿到一个镜像也可以通过这个方法研究一下他是怎么做的 2006 | 2007 | ### CMD与ENTRYPOINT 2008 | 2009 | 【视频书签,https://www.bilibili.com/video/BV1og4y1q7M4?p=29】 2010 | 2011 | ```shell 2012 | 2013 | FROM centos 2014 | CMD ["ls","-a"] # 启动centos展示目录 2015 | ``` 2016 | 2017 |  2018 | 2019 | 测试ENTRYPOINT 2020 | 2021 |  2022 | 2023 | run的时候可以直接加命令 2024 | 2025 |  2026 | 2027 | Docker中许多命令都十分相似,我们需要了解他们的区别,最好的方式就是这样对比测试 2028 | 2029 | --- 2030 | 2031 | ### 实战Tomcat镜像 2032 | 2033 | 【视频书签,https://www.bilibili.com/video/BV1og4y1q7M4?p=30】 2034 | 2035 | ## IDEA整合Docker 2036 | 2037 | ## Docker 整合Docker 2038 | 2039 | ## Docker Compose 2040 | 2041 | ## Docker Swarm 2042 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # learn_docker 2 | docker学习笔记,参考b战 遇见狂神说 3 | -------------------------------------------------------------------------------- /pic/1597908053(1).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/1597908053(1).png -------------------------------------------------------------------------------- /pic/image-20200606203310614.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200606203310614.png -------------------------------------------------------------------------------- /pic/image-20200606203315597.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200606203315597.png -------------------------------------------------------------------------------- /pic/image-20200606205436434.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200606205436434.png -------------------------------------------------------------------------------- /pic/image-20200606205739655.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200606205739655.png -------------------------------------------------------------------------------- /pic/image-20200606212250845.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200606212250845.png -------------------------------------------------------------------------------- /pic/image-20200608091950655.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200608091950655.png -------------------------------------------------------------------------------- /pic/image-20200608092628498.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200608092628498.png -------------------------------------------------------------------------------- /pic/image-20200608093040366.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200608093040366.png -------------------------------------------------------------------------------- /pic/image-20200608093114774.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200608093114774.png -------------------------------------------------------------------------------- /pic/image-20200616145430166.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200616145430166.png -------------------------------------------------------------------------------- /pic/image-20200616150014082.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200616150014082.png -------------------------------------------------------------------------------- /pic/image-20200616150818860.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200616150818860.png -------------------------------------------------------------------------------- /pic/image-20200616150922549.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200616150922549.png -------------------------------------------------------------------------------- /pic/image-20200616151641013.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200616151641013.png -------------------------------------------------------------------------------- /pic/image-20200616151913277.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200616151913277.png -------------------------------------------------------------------------------- /pic/image-20200616154429105.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200616154429105.png -------------------------------------------------------------------------------- /pic/image-20200616154455964.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200616154455964.png -------------------------------------------------------------------------------- /pic/image-20200616155201285.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200616155201285.png -------------------------------------------------------------------------------- /pic/image-20200616155600567.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200616155600567.png -------------------------------------------------------------------------------- /pic/image-20200616155649476.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200616155649476.png -------------------------------------------------------------------------------- /pic/image-20200616160315298.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200616160315298.png -------------------------------------------------------------------------------- /pic/image-20200616161441669.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200616161441669.png -------------------------------------------------------------------------------- /pic/image-20200616162107363.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200616162107363.png -------------------------------------------------------------------------------- /pic/image-20200616162302653.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200616162302653.png -------------------------------------------------------------------------------- /pic/image-20200616163338187.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200616163338187.png -------------------------------------------------------------------------------- /pic/image-20200616172056530.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200616172056530.png -------------------------------------------------------------------------------- /pic/image-20200616172651835.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200616172651835.png -------------------------------------------------------------------------------- /pic/image-20200616173009473.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200616173009473.png -------------------------------------------------------------------------------- /pic/image-20200616173050756.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200616173050756.png -------------------------------------------------------------------------------- /pic/image-20200616173110684.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200616173110684.png -------------------------------------------------------------------------------- /pic/image-20200616173308194.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200616173308194.png -------------------------------------------------------------------------------- /pic/image-20200616173740981.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200616173740981.png -------------------------------------------------------------------------------- /pic/image-20200616174440284.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200616174440284.png -------------------------------------------------------------------------------- /pic/image-20200616200344918.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200616200344918.png -------------------------------------------------------------------------------- /pic/image-20200616200418271.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200616200418271.png -------------------------------------------------------------------------------- /pic/image-20200616200505065.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200616200505065.png -------------------------------------------------------------------------------- /pic/image-20200617094339687.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200617094339687.png -------------------------------------------------------------------------------- /pic/image-20200617100948088.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200617100948088.png -------------------------------------------------------------------------------- /pic/image-20200617101048404.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200617101048404.png -------------------------------------------------------------------------------- /pic/image-20200617101105899.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200617101105899.png -------------------------------------------------------------------------------- /pic/image-20200617102049613.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200617102049613.png -------------------------------------------------------------------------------- /pic/image-20200617102126526.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200617102126526.png -------------------------------------------------------------------------------- /pic/image-20200617103406974.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200617103406974.png -------------------------------------------------------------------------------- /pic/image-20200617103633235.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200617103633235.png -------------------------------------------------------------------------------- /pic/image-20200617104004004.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200617104004004.png -------------------------------------------------------------------------------- /pic/image-20200617161744298.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200617161744298.png -------------------------------------------------------------------------------- /pic/image-20200617210554147.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200617210554147.png -------------------------------------------------------------------------------- /pic/image-20200617210932306.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200617210932306.png -------------------------------------------------------------------------------- /pic/image-20200617211021003.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200617211021003.png -------------------------------------------------------------------------------- /pic/image-20200617211039508.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200617211039508.png -------------------------------------------------------------------------------- /pic/image-20200617212310709.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200617212310709.png -------------------------------------------------------------------------------- /pic/image-20200617213142079.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200617213142079.png -------------------------------------------------------------------------------- /pic/image-20200617213213721.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200617213213721.png -------------------------------------------------------------------------------- /pic/image-20200618100319796.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200618100319796.png -------------------------------------------------------------------------------- /pic/image-20200618100551587.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200618100551587.png -------------------------------------------------------------------------------- /pic/image-20200618100621199.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200618100621199.png -------------------------------------------------------------------------------- /pic/image-20200618101811914.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200618101811914.png -------------------------------------------------------------------------------- /pic/image-20200618101849917.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200618101849917.png -------------------------------------------------------------------------------- /pic/image-20200618102022167.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200618102022167.png -------------------------------------------------------------------------------- /pic/image-20200618102544564.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200618102544564.png -------------------------------------------------------------------------------- /pic/image-20200618102837397.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200618102837397.png -------------------------------------------------------------------------------- /pic/image-20200618103109004.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200618103109004.png -------------------------------------------------------------------------------- /pic/image-20200618103407205.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200618103407205.png -------------------------------------------------------------------------------- /pic/image-20200618103958168.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200618103958168.png -------------------------------------------------------------------------------- /pic/image-20200618104052242.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200618104052242.png -------------------------------------------------------------------------------- /pic/image-20200618104950722.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200618104950722.png -------------------------------------------------------------------------------- /pic/image-20200618105057785.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200618105057785.png -------------------------------------------------------------------------------- /pic/image-20200618105828489.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200618105828489.png -------------------------------------------------------------------------------- /pic/image-20200618111713885.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200618111713885.png -------------------------------------------------------------------------------- /pic/image-20200618113018622.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200618113018622.png -------------------------------------------------------------------------------- /pic/image-20200618113556445.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200618113556445.png -------------------------------------------------------------------------------- /pic/image-20200618114542622.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200618114542622.png -------------------------------------------------------------------------------- /pic/image-20200618114902169.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200618114902169.png -------------------------------------------------------------------------------- /pic/image-20200618115149971.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200618115149971.png -------------------------------------------------------------------------------- /pic/image-20200618115302656.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200618115302656.png -------------------------------------------------------------------------------- /pic/image-20200618115921069.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200618115921069.png -------------------------------------------------------------------------------- /pic/image-20200618134706491.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200618134706491.png -------------------------------------------------------------------------------- /pic/image-20200618135424706.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200618135424706.png -------------------------------------------------------------------------------- /pic/image-20200618135450037.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200618135450037.png -------------------------------------------------------------------------------- /pic/image-20200618140242423.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200618140242423.png -------------------------------------------------------------------------------- /pic/image-20200618140907894.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200618140907894.png -------------------------------------------------------------------------------- /pic/image-20200618140932621.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200618140932621.png -------------------------------------------------------------------------------- /pic/image-20200618141014511.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200618141014511.png -------------------------------------------------------------------------------- /pic/image-20200618153329894.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200618153329894.png -------------------------------------------------------------------------------- /pic/image-20200618153641472.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200618153641472.png -------------------------------------------------------------------------------- /pic/image-20200618153855605.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200618153855605.png -------------------------------------------------------------------------------- /pic/image-20200618154457286.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200618154457286.png -------------------------------------------------------------------------------- /pic/image-20200618154736475.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200618154736475.png -------------------------------------------------------------------------------- /pic/image-20200618154943194.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200618154943194.png -------------------------------------------------------------------------------- /pic/image-20200618155750591.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200618155750591.png -------------------------------------------------------------------------------- /pic/image-20200618160425265.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200618160425265.png -------------------------------------------------------------------------------- /pic/image-20200618162914845.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200618162914845.png -------------------------------------------------------------------------------- /pic/image-20200618162917672.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200618162917672.png -------------------------------------------------------------------------------- /pic/image-20200618163659503.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200618163659503.png -------------------------------------------------------------------------------- /pic/image-20200618163938466.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200618163938466.png -------------------------------------------------------------------------------- /pic/image-20200618164148642.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200618164148642.png -------------------------------------------------------------------------------- /pic/image-20200618164818624.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200618164818624.png -------------------------------------------------------------------------------- /pic/image-20200618171353336.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200618171353336.png -------------------------------------------------------------------------------- /pic/image-20200618173138377.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200618173138377.png -------------------------------------------------------------------------------- /pic/image-20200618173234347.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200618173234347.png -------------------------------------------------------------------------------- /pic/image-20200618173300551.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200618173300551.png -------------------------------------------------------------------------------- /pic/image-20200618173729692.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200618173729692.png -------------------------------------------------------------------------------- /pic/image-20200618203452205.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200618203452205.png -------------------------------------------------------------------------------- /pic/image-20200618203744983.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200618203744983.png -------------------------------------------------------------------------------- /pic/image-20200618211023834.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200618211023834.png -------------------------------------------------------------------------------- /pic/image-20200618211318410.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200618211318410.png -------------------------------------------------------------------------------- /pic/image-20200618211516566.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200618211516566.png -------------------------------------------------------------------------------- /pic/image-20200618211547398.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200618211547398.png -------------------------------------------------------------------------------- /pic/image-20200618211803012.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200618211803012.png -------------------------------------------------------------------------------- /pic/image-20200618212936481.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200618212936481.png -------------------------------------------------------------------------------- /pic/image-20200618213310752.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200618213310752.png -------------------------------------------------------------------------------- /pic/image-20200618220658979.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200618220658979.png -------------------------------------------------------------------------------- /pic/image-20200618221801103.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200618221801103.png -------------------------------------------------------------------------------- /pic/image-20200618221837895.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200618221837895.png -------------------------------------------------------------------------------- /pic/image-20200618222224352.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200618222224352.png -------------------------------------------------------------------------------- /pic/image-20200621165403842.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200621165403842.png -------------------------------------------------------------------------------- /pic/image-20200621165733780.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200621165733780.png -------------------------------------------------------------------------------- /pic/image-20200621170429658.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200621170429658.png -------------------------------------------------------------------------------- /pic/image-20200621170540593.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200621170540593.png -------------------------------------------------------------------------------- /pic/image-20200621171513650.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200621171513650.png -------------------------------------------------------------------------------- /pic/image-20200621172333639.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200621172333639.png -------------------------------------------------------------------------------- /pic/image-20200621172830779.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200621172830779.png -------------------------------------------------------------------------------- /pic/image-20200621174200588.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200621174200588.png -------------------------------------------------------------------------------- /pic/image-20200621174204807.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200621174204807.png -------------------------------------------------------------------------------- /pic/image-20200621174943858.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200621174943858.png -------------------------------------------------------------------------------- /pic/image-20200621174948310.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200621174948310.png -------------------------------------------------------------------------------- /pic/image-20200621184333206.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200621184333206.png -------------------------------------------------------------------------------- /pic/image-20200621184847524.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200621184847524.png -------------------------------------------------------------------------------- /pic/image-20200621185539523.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200621185539523.png -------------------------------------------------------------------------------- /pic/image-20200621190219978.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200621190219978.png -------------------------------------------------------------------------------- /pic/image-20200621190439448.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200621190439448.png -------------------------------------------------------------------------------- /pic/image-20200621190524848.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200621190524848.png -------------------------------------------------------------------------------- /pic/image-20200621190812481.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200621190812481.png -------------------------------------------------------------------------------- /pic/image-20200621192103460.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200621192103460.png -------------------------------------------------------------------------------- /pic/image-20200622075427103.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200622075427103.png -------------------------------------------------------------------------------- /pic/image-20200622075653789.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200622075653789.png -------------------------------------------------------------------------------- /pic/image-20200622075802180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200622075802180.png -------------------------------------------------------------------------------- /pic/image-20200624101454866.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/image-20200624101454866.png -------------------------------------------------------------------------------- /pic/企业微信截图_16487978489681.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isenwen/learn_docker/HEAD/pic/企业微信截图_16487978489681.png --------------------------------------------------------------------------------