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
647658sudo docker ps 查看已经运行过容器的基本信息
648- sudo docker inspect 容器ID:查看容器的详细信息
649659sudo docker stop 容器ID,停止守护式容器
650660sudo service docker restart,重启 docker 服务,当修改了 docker 相关的一些配置
651661sudo 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