@@ -15,13 +15,15 @@ Docker 基础入门篇
15
15
16
16
### 1. 相关资源
17
17
18
- + 官网:[ https://www.docker.com ] ( https://www.docker.com )
19
- + 镜像仓库:[ https://store.docker.com ] ( https://store.docker.com )
20
- + DaoCloud 镜像仓库:[ http://hub.daocloud.io ] ( http://hub.daocloud.io )
21
- + 阿里云镜像仓库:[ https://dev.aliyun.com/search.html ] ( https://dev.aliyun.com/search.html )
22
- + Docker 从入门到实践:[ 在线阅读] ( https://github.com/yeasy/docker_practice/blob/master/SUMMARY.md ) | [ pdf下载] ( https://www.gitbook.com/download/pdf/book/yeasy/docker_practice ) | [ epub下载] ( https://www.gitbook.com/download/epub/book/yeasy/docker_practice )
23
- + Docker 中文文档:[ http://www.dockerinfo.net/document ] ( http://www.dockerinfo.net/document )
24
- + Docker 教程:[ http://www.runoob.com/docker/docker-tutorial.html ] ( http://www.runoob.com/docker/docker-tutorial.html )
18
+ - 官网地址:[ https://www.docker.com ] ( https://www.docker.com )
19
+ - 镜像仓库
20
+ - 【官方】镜像仓库:[https://store.docker.com](https://store.docker.com)
21
+ - 【DaoCloud】镜像仓库:[http://hub.daocloud.io](http://hub.daocloud.io)
22
+ - 【阿里云】镜像仓库:[https://dev.aliyun.com/search.html](https://dev.aliyun.com/search.html)
23
+ - 学习资料
24
+ - Docker 从入门到实践:[在线阅读](https://github.com/yeasy/docker_practice/blob/master/SUMMARY.md) | [pdf下载](https://www.gitbook.com/download/pdf/book/yeasy/docker_practice) | [epub下载](https://www.gitbook.com/download/epub/book/yeasy/docker_practice)
25
+ - Docker 中文文档:[http://www.dockerinfo.net/document](http://www.dockerinfo.net/document)
26
+ - Docker 教程:[http://www.runoob.com/docker/docker-tutorial.html](http://www.runoob.com/docker/docker-tutorial.html)
25
27
26
28
### 2. 安装
27
29
@@ -54,7 +56,18 @@ $ curl -sSL https://get.daocloud.io/docker | sh
54
56
55
57
### 3. 镜像
56
58
57
- #### 3.1. 基本使用
59
+ Docker 镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。** 镜像不包含任何动态数据,其内容在构建之后也不会被改变。**
60
+
61
+ Docker 镜像是怎么实现增量的修改和维护的? 每个镜像都由很多层次构成,Docker 使用 [ Union FS] ( https://en.wikipedia.org/wiki/Union_mount ) 将这些不同的层结合到一个镜像中去。
62
+
63
+ 通常 Union FS 有两个用途:
64
+
65
+ - 实现不借助 LVM、RAID 将多个 disk 挂到同一个目录下;
66
+ - 将一个只读的分支和一个可写的分支联合在一起,Live CD 正是基于此方法可以允许在镜像不变的基础上允许用户在其上进行一些写操作。
67
+
68
+ Docker 在 AUFS 上构建的容器也是利用了类似的原理。
69
+
70
+ #### 3.1. 常用操作命令
58
71
59
72
``` bash
60
73
# 搜索镜像
@@ -79,23 +92,37 @@ $ docker rmi $(docker images -q redis)
79
92
$ sudo docker tag < 镜像ID> < 标签名>
80
93
81
94
# 导出镜像存储文件
82
- $ docker save -o 导出镜像名.tar.gz < 镜像ID>
95
+ $ docker save -o 导出镜像名.tar.gz < 镜像ID 或 镜像名:tag >
83
96
84
- # 导入镜像存储文件
97
+ # 导入镜像存储文件(包含镜像以及相关元数据信息,比如标签等)
85
98
$ docker load < 导出镜像名.tar.gz
99
+ 或
100
+ $ docker load --input 导出镜像名.tar.gz
86
101
87
102
# 其它
88
103
89
104
```
90
105
91
106
#### 3.2. 镜像加速器
92
107
108
+ 由于国内访问 Docker Hub 有时会遇到困难,所以需要配置镜像加速器,推荐如下两个:
109
+
93
110
+ [ DaoCloud] ( https://www.daocloud.io/mirror )
94
111
+ [ 阿里云] ( https://account.aliyun.com/login/login.htm?oauth_callback=https%3A%2F%2Fcr.console.aliyun.com%2F&lang=zh#/accelerator )
95
112
96
113
### 4. 容器
97
114
98
- ```
115
+ 镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。
116
+
117
+ 容器可以被创建、启动、停止、删除、暂停等。
118
+
119
+ 容器的实质是** 进程** ,但与直接在宿主执行的进程不同,容器进程运行于属于自己的独立的 命名空间。因此容器可以拥有自己的 root 文件系统、自己的网络配置、自己的进程空间,甚至自己的用户 ID 空间。容器内的进程是运行在一个隔离的环境里,使用起来,就好像是在一个独立于宿主的系统下操作一样。这种特性使得容器封装的应用比直接在宿主运行更加安全。也因为这种隔离的特性,很多人初学 Docker 时常常会把容器和虚拟机搞混。
120
+
121
+ > 按照 Docker 最佳实践的要求,** 容器不应该向其存储层内写入任何数据,容器存储层要保持无状态化** 。所有的文件写入操作,都应该使用 数据卷(Volume)、或者绑定宿主目录,在这些位置的读写会跳过容器存储层,直接对宿主(或网络存储)发生读写,其性能和稳定性更高。
122
+
123
+ #### 4.1. 常用操作命令
124
+
125
+ ``` bash
99
126
# 输出一个“hello world”后终止容器
100
127
$ docker run ubuntu:16.04 /bin/echo ' hello world'
101
128
hello world
@@ -127,7 +154,7 @@ $ docker stop $CONTAINER_ID
127
154
# 启动已关闭的容器
128
155
$ docker start $CONTAINER_ID
129
156
130
- # 获取容器的输出信息
157
+ # 获取容器的输出信息(-f 选项用于持续获取)
131
158
$ docker logs $CONTAINER_ID
132
159
133
160
# 查看容器的相关信息
0 commit comments