Dockerfile
Dockerfile是用来构建docker镜像的构建文件,
由一系列命令和参数构成的脚本(类似于maven命令或git命令)
#文件示例
https://github.com/docker-library/redis/blob/6845f6d4940f94c50a9f1bf16e07058d0fe4bc4f/5.0/Dockerfile
#Dockerfile构建三步骤:
1.编写Dockerfile文件
2.docker build
build后, 获得一个自定义的镜像
3.docker run
#docker run: -->一个命令
启动单个容器, 若run后面的资源本地不存在, 则先从docker-hub拉取, 再启动;
#Dockerfile: -->一个文件
记录单个镜像的构建过程,作用是从无到有的构建镜像。它包含安装运行所需的环境、程序代码等。
然后执行"docker build"即可建立一个独立的 image, 当然也可在docker-compose.yml中使用Dockerfile。
#docker-compse.yml -->一个文件
docker-compose是编排容器的, 记录一个项目(project, 一般是多个镜像)的构建过程,具备scale (服务扩容) 的功能。
docker-compose.yml 本身没有镜像构建的信息,
如果镜像是从 docker registry 拉取下来的,那么 Dockerfile 就不需要;
如果镜像是需要 build 的,那就需要提供 Dockerfile. 在docker-compose.yml中定义build即可
例如,你要启动一个含有jdk, kafka,zk镜像的环境, 可以把这些命令写在docker-composer.yml文件中,
每次启动这一整个环境时,执行"docker-composer up -d"命令即可,
不必单独执行各个容器的启动参数,环境变量,容器命名,指定不同容器的链接参数等等一系列的操作
参考文档
https://yeasy.gitbooks.io/docker_practice/content/swarm_mode/deploy.html (核心参考文档)
https://www.centos.bz/2017/01/docker-run-detached-vs-foreground/
https://blog.csdn.net/taiyangdao/article/details/73076770
https://www.cnblogs.com/ityouknow/category/1173004.html
https://blog.csdn.net/sannerlittle/article/details/76088504
https://blog.csdn.net/qq_36148847/article/details/79427878
https://beltxman.com/archives/2417.html