《Docker Deep Dive》Note - 纵观 Docker
《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的更多相关文章
- 《Docker Deep Dive》Note - Docker 引擎
<Docker Deep Dive>Note Docker 引擎 1. 概览 graph TB A(Docker client) --- B(daemon) subgraph Docker ...
- docker operation method note
docker stop script #!/bin/bash CID_LIST=$(docker ps -q | xargs)if [ "$CID_LIST" = "&q ...
- X64 Deep Dive
zhuan http://www.codemachine.com/article_x64deepdive.html X64 Deep Dive This tutorial discusses some ...
- Docker私有云管理平台————Docker Shipyard
一.shipyard中文版安装(CentOS) 注:本文安装操作均在root用户下,安装前需先安装Docker (传送门) 下载所需docker镜像 docker pull rethinkdb doc ...
- 【Docker学习之二】Docker部署安装
环境 docker-ce-19.03.1-3.el7.x86_64 一.Docker的部署安装 Docker采用Linux(内核)技术,所以只能运行在Linux上,官方说Linux kernel至少3 ...
- 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 ...
- 理解Docker(8):Docker 存储之卷(Volume)
(1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 Linux namespace 隔离容器的运行环境 (4)Docker 容器的隔离性 - 使用 ...
- 理解Docker(7):Docker 存储 - AUFS
(1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 Linux namespace 隔离容器的运行环境 (4)Docker 容器的隔离性 - 使用 ...
- 理解Docker(5):Docker 网络
本系列文章将介绍 Docker的相关知识: (1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 Linux namespace 隔离容器的运行环境 ...
随机推荐
- hibernate的持久化类、主键生成策略
一.hibernate的持久化类 1.什么是持久化类: 持久化:将数据存储到关系型数据库. 持久化类:与数据库中的数据表建立了某种关系的java类.(持久化类=javabean+映射配置文件) 2.持 ...
- C语言博客06-结构体
1.本章学习总结 1.1 学习内容总结 结构体如何定义.成员如何赋值 1.结构体的一般形式为: struct 结构体名 { 数据类型 成员名1: 数据类型 成员名2: : 数据类型 成员名n: }: ...
- Shell的语法
Shell的语法: 变量:字符串.数字.环境和参数: 条件:shell中的布尔值: 程序控制:if.elif.for.while.until.case: 命令列表: 函数: Shell内置命令: 获取 ...
- Java 8 创建 Stream 的 10 种方式,我保证你受益无穷!
之前栈长分享过 Java 8 一系列新特性的文章,其中重点介绍了 Stream. 获取上面这份 Java 8~12 系列新特性干货文章,请在微信搜索关注微信公众号:Java技术栈,在公众号后台回复:j ...
- Windows本地搭建Edusoho环境
Windows搭建Edusoho比Linux还要轻松的多.因为有很多环境集成工具如xampp.wampserver.phpstudy等.基本上安装号wampserver工具,直接将edusoho项目扔 ...
- java.lang.Thread类的静态方法sleep()和yield()的比较
[线程让步yield()方法] yield()方法可以让当前正在执行的线程暂停,但它不会阻塞该线程,它只是将该线程从运行状态转入就绪状态. 只是让当前的线程暂停一下,让系统的线程调度器重新调度一次. ...
- cocos creator策略类手游开发教程
目录 大小6.83GB,Mp4格式,语言:中文 扫码时备注或说明中留下邮箱 付款后如未回复请至https://shop135452397.taobao.com/ 联系店主
- 布局优化: <include />、<merge /> 、<ViewStub /> 标签的使用
在布局优化中,Androi的官方提到了这三种布局<include />.<merge />.<ViewStub />,并介绍了这三种布局各有的优势,下面也是简单说一 ...
- PostgreSQL体系架构与内存结构
PostgreSQL体系架构 PostgreSQL的内存结构
- bat脚本的基本命令语法
bat脚本的基本命令语法 一.批处理的常见命令 1.REM 和 :: 2.ECHO 和 @ 3.PAUSE 4.ERRORLEVEL 5.TITLE 6.COL ...