Docker学习

mac2026-05-28  3

Docker学习的第二天

关于docker持久化

1. 使用指令 docker run -it -v /主机文件路径:/容器文件路径 …

相当于共享的文件夹,在容器中往这个文件夹中存放的东西会保存在宿主机对应的文件夹中。

2. docker file

先在主机中建一个file,写入以下内容 FROM centos VOLUME ["/dataVolumeContainer1","/dataVolumeContainer2"] CMD echo "finished,------success1" CMD /bin/bash

上面的内容等价于 docker run -it -v /host1:/dataVolumeContainer1 /host2:/dataVolumeContainer2 centos /bin/bash

docker build -f 配置文件路径 -t 对应容器 注意这里有个深坑 没错就是这个 ‘.’ 这个点要是不写的话 “docker build” requires exactly 1 argument. 就是这个错误了。上面的的dockerfile内容实际上与java开发中的maven非常类似,想想在使用maven的pom文件。就又是很nice! build成功 volumes-from 创建了自己的容器,然后运行。之后可以使用 volumes-from指令复制多个容器,此时dockerfile中的内容也会被复制。也就是说共享文件中的内容会被所有volumes-from复制出来的容器共享。 运行第一个容器 复制第一个容器 此时01和02中的dataVolumeContainer1和dataVolumeContainer2文件夹中的内容完全共享。补充一下 docker file 实际的执行顺序

从这往后虽然也是dockerfile但是貌似和持久化就没太大关系了。

dockerfile的保留指令字,注意关键字一定要大写 这里待插入一大堆指令字(不过我又感觉这地方一辈子可能都只有这么几个字了)。。。 很显然通过这些指令字,我们就可以很好的实现最满足自己需求的docker镜像。 这里有两个需要注意的关键字,强调一下区别,CMD 和 ENTRYPOINT,CMD可以有多个但是只运行最后一个, ENTRYPOINT 会直接整合所有的指令。怎么感觉 ENTRYPOINT比CMD强大这么多,但是存在就是有道理CMD一定也有他自己的优点。

最后与远程仓库的互动

这个实际上就和git非常类似了,所以在这篇文章中就不多提了,唯一要说的是,连接远程仓库的配置文件路径:/etc/docker/daemon.json

{ "registry-mirrors": ["https://xxxxxxx.mirror.aliyuncs.com"] /*这里输入你的远程仓库地址*/ }

以上,结束docker的学习,接下来就是在实践中不断的巩固和加深。

最新回复(0)