Skip to content

Commit d0b4b1a

Browse files
committed
2017-05-17 完善 docker
1 parent 46c984c commit d0b4b1a

File tree

1 file changed

+30
-21
lines changed

1 file changed

+30
-21
lines changed

Docker-Install-And-Usage.md

Lines changed: 30 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
- 镜像:可以认为是类似 Windows 下的:XXXX.iso
1616
- 容器:容器为镜像的实例,可以认为是 Virtualbox 运行 XXXX.iso 后的效果
1717
- 官网的镜像仓库地址:<https://store.docker.com/>
18+
- 对开发来讲总结一个最简单的说法:在 Maven 未产生的年代,jar 包要随着开发项目走到哪里跟到哪里。有了 Maven 写好 pom.xml 即可。此时的 Docker 就好比如 Maven,帮你省去了开发过程中的部署环境差异,你再也不能随便说:你的系统可以运行,我的系统就不行。现在别人连系统都帮你做好了。
19+
- 玩法理念:单进程,一个容器最好最专注去做一个事情。虽然它可以既装 MySQL,又装 Nginx 等等,但是让一个容器只做好一件事是最合适的。
1820
- 其他通俗解释:
1921

2022
> Docker的思想来自于集装箱,集装箱解决了什么问题?在一艘大船上,可以把货物规整的摆放起来。并且各种各样的货物被集装箱标准化了,集装箱和集装箱之间不会互相影响。那么我就不需要专门运送水果的船和专门运送化学品的船了。只要这些货物在集装箱里封装的好好的,那我就可以用一艘大船把他们都运走。
@@ -226,38 +228,44 @@ java -jar /root/spring-boot-my-demo.jar
226228
- `docker build`:使用 Dockerfile 创建镜像(推荐)
227229
- `docker build --rm -t runoob/ubuntu:v1 .`,参数 `-t`,表示:-tag,打标签
228230
- `docker history`:显示生成一个镜像的历史命令
229-
- `docker save`:将一个镜像保存为一个 tar 包,带 layers 和 tag 信息
230-
- `docker save 容器ID/容器名称 -o /opt/test.tar`
231-
- `docker load`:从一个 tar 包创建一个镜像
232-
加载一个tar包格式的镜像; -i, --input="" 从tar存档文件读取
231+
- `docker save`:将一个镜像保存为一个 tar 包,带 layers 和 tag 信息(导出一个镜像)
232+
- `docker save 镜像ID -o /opt/test.tar`
233+
- `docker load`:从一个 tar 包创建一个镜像(导入一个镜像)
233234
- `docker load -i /opt/test.tar`
234235

235236

236-
> 容器操作
237+
> 容器管理操作
237238

238239
- `docker ps`:列出当前所有 **正在运行** 的容器
240+
- `docker ps -a`:列出所有的容器(包含历史,即运行过的容器)
239241
- `docker ps -l`:列出最近一次启动的container
240-
- `docker ps -a`:列出所有的container(包含历史,即运行过的container)
241242
- `docker ps -q`:列出最近一次运行的container ID
242243
- `docker ps -n x`:显示最后 x 个容器,不管是正在运行或是已经停止的
243-
- `docker inspect 容器ID/容器名称`:查看容器的全面信息,用 JSON 格式输出
244-
- `docker top 容器ID/容器名称`:显示容器的进程信息
245-
- `docker attach 容器ID/容器名称`:连接到正在运行中的容器, 要attach上去的容器必须正在运行
244+
- `docker inspect 容器ID`:查看容器的全面信息,用 JSON 格式输出
245+
- 获取容器中的 IP:`docker inspect -f '{{.NetworkSettings.IPAddress}}' 容器ID`
246+
- 给容器重新设置 IP 和 子网掩码,需要在宿主上:`ifconfig 容器ID 192.168.200.1 netmask 255.255.255.0`
247+
- `docker top 容器ID`:显示容器的进程信息
246248
- `docker events`:得到 docker 服务器的实时的事件
247-
- `docker logs -f 容器ID/容器名称`:查看容器日志
248-
- `docker logs 容器ID/容器名称`,获取守护式容器的日志
249-
- `docker logs -f 容器ID/容器名称`,不断监控容器日志,类似 tail -f
250-
- `docker logs -ft 容器ID/容器名称`,在 -f 的基础上又增加 -t 表示为每条日志加上时间戳,方便调试
251-
- `docker logs --tail 10 容器ID/容器名称`,获取日志最后 10 行
252-
- `docker logs --tail 0 -f 容器ID/容器名称`,跟踪某个容器的最新日志而不必读取日志文件
249+
- `docker logs -f 容器ID`:查看容器日志
250+
- `docker logs 容器ID`,获取守护式容器的日志
251+
- `docker logs -f 容器ID`,不断监控容器日志,类似 tail -f
252+
- `docker logs -ft 容器ID`,在 -f 的基础上又增加 -t 表示为每条日志加上时间戳,方便调试
253+
- `docker logs --tail 10 容器ID`,获取日志最后 10 行
254+
- `docker logs --tail 0 -f 容器ID`,跟踪某个容器的最新日志而不必读取日志文件
253255
- `docker wait` :阻塞到一个容器,直到容器停止运行
254256
- `docker export` :将容器整个文件系统导出为一个tar包,不带layers、tag等信息
255257
- `docker port` :显示容器的端口映射
256258

257259
> 容器生命周期管理
258260

259261
- `docker run`
260-
- `docker run -i -t centos /bin/bash`,在 centos 容器下运行 shell bash。其中参数:-i -t 表示保证容器中的 STDIN 开启,并分配一个伪 tty 终端进行交互。此外常用的参数还有:--name 是给容器起了一个名字;-d 容器运行在后台。-p 8080:80 表示端口映射,将宿主机的8080端口转发到容器内的80端口。容器的名称规则:大小写字母、数字、下划线、圆点、中横线,用正则表达式来表达就是:[a-zA-Z0-9_*-]
262+
- `docker run --name myDockerNameIsGitNavi -i -t centos /bin/bash`,在 centos 容器下运行 shell bash。
263+
- `-i -t` 分别表示保证容器中的 STDIN 开启,并分配一个伪 tty 终端进行交互,这两个是合着用。
264+
- `--name` 是给容器起了一个名字(如果没有主动给名字,docker 会自动给你生成一个)容器的名称规则:大小写字母、数字、下划线、圆点、中横线,用正则表达式来表达就是:[a-zA-Z0-9_*-]
265+
- `-d` 容器运行在后台。
266+
- `-p 8080:80` 表示端口映射,将宿主机的8080端口转发到容器内的80端口。
267+
- `docker run --rm --name myDockerNameIsGitNavi -i -t centos /bin/bash`,在 centos 容器下运行 shell bash。
268+
- `--rm`,表示退出即删除容器,一般用在做实验测试的时候
261269
- `docker run --restart=always -i -t centos /bin/bash`,--restart=always 表示停止后会自动重启
262270
- `docker run --restart=on-failure:5 -i -t centos /bin/bash`,--restart=on-failure:5 表示停止后会自动重启,最多重启 5 次
263271
- `docker run -i -t -v /opt/setups/:/opt/software/ 容器ID /bin/bash`,启动容器,并进入 shell,同时挂载宿主机和容器的目录
@@ -268,11 +276,15 @@ java -jar /root/spring-boot-my-demo.jar
268276
- `--name`:表示容器名称,用一个有意义的名称命名即可
269277
- 进入容器后退出,输入:`exit` 回车
270278
- `docker start`,重新启动已经停止的容器
271-
- `docker start 容器ID/容器名称`
279+
- `docker start 容器ID`
280+
- `docker attach`:连接上正在运行中的容器, 被 attach 上去的容器必须正在运行的才可以
281+
- `docker attach 容器ID`:重新进入容器终端中
272282
- `docker stop`
273283
- `docker restart`
274284
- `docker kill 容器ID/容器名称`
275285
- `docker rm`,删除容器
286+
- `docker rm 容器ID`,删除指定容器(该容器必须是停止的)
287+
- `docker rm -f 容器ID`,删除指定容器(该容器可以是正在运行的)
276288
- `docker rm $(docker ps -a -q)`,删除所有容器
277289
- `docker pause/unpause`
278290
- `docker create`
@@ -289,7 +301,6 @@ java -jar /root/spring-boot-my-demo.jar
289301

290302
在提交镜像时指定更多的数据(包括标签)来详细描述所做的修改
291303
sudo docker commit -m="A new custom image" --author="James Turnbull" 4aab3ce3cb76 jamtur01/apache2:webserver
292-
293304
- `docker cp`:从容器里向外拷贝文件或目录
294305
- `docker cp Name:/container_path to_path`
295306
- `docker cp ID:/container_path to_path`
@@ -645,12 +656,10 @@ Marathon
645656
- 守护式容器:sudo docker run -d 镜像名
646657
647658
sudo docker ps 查看已经运行过容器的基本信息
648-
sudo docker inspect 容器ID:查看容器的详细信息
649659
sudo docker stop 容器ID,停止守护式容器
650660
sudo service docker restart,重启 docker 服务,当修改了 docker 相关的一些配置
651661
sudo docker rm 容器ID,删除容器
652-
获取容器中的 IP:sudo docker inspect -f '{{.NetworkSettings.IPAddress}}' 容器ID
653-
修改 docker0 这个虚拟网桥,也就是 docker 的网络服务相关信息,比如给它重新设置 IP 和 子网掩码,在宿主上:sudo ifconfig docker0 192.168.200.1 netmask 255.255.255.0
662+
654663
655664
656665
创建镜像:创建dockerfile,然后进行 build,

0 commit comments

Comments
 (0)