《Docker Deep Dive》Note

由于GFW的隔离,国内拉取镜像会报TLS handshake timeout的错误;需要配置 registry-mirrors 为国内源解决这个问题。

可以配置为阿里的加速源:https://cr.console.aliyun.com/undefined/instances/mirrors,阿里的加速器可以提升获取Docker官方镜像的速度。

登录开发者账号后,将自己的加速器地址复制到 Docker Settings > Daemon > Registry mirrors 中,并点击 Apply 按钮,等待 Docker 重启完成即可。

纵观 Docker

1. 运维视角

1.1 镜像
  • docker pull
  • docker image ls
# 拉取一个镜像
$ docker pull ubuntu:lastest latest: Pulling from library/ubuntu
7ddbc47eeb70: Pull complete
c1bbdc448b72: Pull complete
8c3b70e39044: Pull complete
45d437916d57: Pull complete
Digest: sha256:6e9f67fa63b0323e9a1e587fd71c561ba48a034504fb804fd26fd8800039835d
Status: Downloaded newer image for ubuntu:latest # 查看拉取的镜像
$ docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest 775349758637 9 days ago 64.2MB
1.2 容器
  • docker container run
  • docker container ls
  • 快捷键 Ctrl+P+Q
# 启动容器
# -it 参数会将 Shell 切换到容器终端
$ docker container run -it ubuntu:latest /bin/bash root@90eb9f237521:/#

Ctrl + P + Q组合键,可以在退出容器的同时还保持容器运行。

# windows下可以通过 tasklist 命令查看进程
$ tasklist /FI "imagename eq docker*" 映像名称 PID 会话名 会话# 内存使用
========================= ======== ================ =========== ============
Docker for Windows.exe 13972 Console 5 102,560 K
Docker.Watchguard.exe 3772 Services 0 2,252 K
Docker.Watchguard.exe 4032 Services 0 2,228 K # 查看系统内全部处于运行状态的容器
$ docker container ls CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
90eb9f237521 ubuntu:latest "/bin/bash" 21 minutes ago Up 21 minutes focused_shaw
1.3 连接到运行中的容器
  • docker container exec
  • docker container stop
  • docker container rm
  • docker container ls -a
# 将 shell 连接到一个运行中的容器终端
# docker container exec <options> <cotainer-name or container-id> <command/app>
$ docker container exec -it 90eb9f237521 bash root@90eb9f237521:/# # 停止一个容器
$ docker container stop 90eb9f237521 90eb9f237521 # 杀死一个容器
$ docker container rm 90eb9f237521 90eb9f237521 # 再次执行 docker container ls 可以查看容器是否已经被删除
# -a 参数可以列出所有(包括停止状态)容器
$ docker container ls -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
# 可以看到容器 90eb9f237521 已经被删除了

2 开发视角

容器即应用。

  • docker image build
# 构建一个镜像
$ docker image build -t test:lastest . ...
Successfully built afe9c1f8a70f
Successfully tagged test:lastest # 查看已经构建的镜像
$ docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE
test lastest afe9c1f8a70f 44 seconds ago 71.5MB # 应用容器化
$ docker container run -d --name web1 --publish 8080:8080 test:lastest $ docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
946d5306bb5e test:lastest "node ./app.js" 13 seconds ago Up 12 seconds 0.0.0.0:8080->8080/tcp web1 # 此时打开浏览器 localhost:8080 即可看到运行的应用

The end.

Last updated by Jehorn 11/10 2019

《Docker Deep Dive》Note - 纵观 Docker的更多相关文章

  1. 《Docker Deep Dive》Note - Docker 引擎

    <Docker Deep Dive>Note Docker 引擎 1. 概览 graph TB A(Docker client) --- B(daemon) subgraph Docker ...

  2. docker operation method note

    docker stop script #!/bin/bash CID_LIST=$(docker ps -q | xargs)if [ "$CID_LIST" = "&q ...

  3. X64 Deep Dive

    zhuan http://www.codemachine.com/article_x64deepdive.html X64 Deep Dive This tutorial discusses some ...

  4. Docker私有云管理平台————Docker Shipyard

    一.shipyard中文版安装(CentOS) 注:本文安装操作均在root用户下,安装前需先安装Docker (传送门) 下载所需docker镜像 docker pull rethinkdb doc ...

  5. 【Docker学习之二】Docker部署安装

    环境 docker-ce-19.03.1-3.el7.x86_64 一.Docker的部署安装 Docker采用Linux(内核)技术,所以只能运行在Linux上,官方说Linux kernel至少3 ...

  6. Deep Dive into Neo4j 3.5 Full Text Search

    In this blog we will go over the Full Text Search capabilities available in the latest major release ...

  7. 理解Docker(8):Docker 存储之卷(Volume)

    (1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 Linux namespace 隔离容器的运行环境 (4)Docker 容器的隔离性 - 使用 ...

  8. 理解Docker(7):Docker 存储 - AUFS

    (1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 Linux namespace 隔离容器的运行环境 (4)Docker 容器的隔离性 - 使用 ...

  9. 理解Docker(5):Docker 网络

    本系列文章将介绍 Docker的相关知识: (1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 Linux namespace 隔离容器的运行环境 ...

随机推荐

  1. Python 08 skimage

    原文:https://www.cnblogs.com/xdjun/p/7874794.html 命令: pip install numpy pip install scipy pip install ...

  2. NOI 2019 游记

    day -1 去报了个到,顺便买了一大堆衣服. 感觉学校饭堂不太行. day 0 上午是开幕式,. 下午是笔试,顺利获得 \(100\) 分. day 1 先看题. 第一题看到 \(At^2+Bt+C ...

  3. “知乎杯”2018 CCF 大学生计算机系统与程序设计竞赛 贪心算法(greedy)

    --> 贪心算法 1)题解 •        分别用V0.V1和V>=2表示度为0.1以及至少为2的顶点集合 •        对于每个顶点,维护三个属性: •        degree ...

  4. P2210 Haywire

    P2210 Haywire 模拟退火练手题 #include<cmath> #include<ctime> #include<cstdio> #include< ...

  5. javascript使用history api防止|阻止页面后退

    奇葩需求啥时候都会有,最近有个需求是不允许浏览器回退,但是所有页面都是超链接跳转,于是乎脑壳没转弯就回答了做不到,结果尼玛被打脸了,这打脸的声音太响,终于静下心来看了下history api. 先上代 ...

  6. Bacteria(优先队列)

    题目链接:http://codeforces.com/gym/101911/problem/C 问题简述:给定n个细胞以及每个细胞的大小,相同的细胞能进行融合,如果能融合到只剩1个细胞则输出需要额外增 ...

  7. Python 企业面试题集锦之Python基础

    △字符串.列表.元组.字典每个常用的5个方法? 字符串: 字符串用单引号(')或双引号(")括起来,不可变. s.strip(c):去除空格或指定的字符c:lstrip/rstrip: s. ...

  8. Spark-Streaming DirectKafka count 案例

    Spark-Streaming DirectKafka count 统计跟直接 kafka 统计类似,只不过这里使用的是 Direct 的方式,Direct方式使用的 kafka 低级API,不同的地 ...

  9. php 调用微信上传临时素材接口 {“errcode”:41005,”errmsg”:”media data missing hint”}

    原因:由于PHP5.6以前与之后的版本curl_setopt有差异.PHP5.6以后不再支持”@文件路径”的方式. $picPath= "public\public\upload\xxx.p ...

  10. mysql 5.6配置

    简洁版: [client] port = 3306 socket = /weyeedata/mysql/run/mysql.sock [mysqld] innodb_buffer_pool_size ...