Dockerfile和docker-compose.yml
2018-02-08 12:17
423 查看
Dockerfile
https://docs.docker.com/engine/reference/builder/基本概念
Dockerfile是一个包含用户会在命令行中执行组装出一个
image所有命令的文本文件。
docker build命令从一个指定的
Dockerfile和执行该文件命令的上下文
Context只能够构建出
image. 一个Context可以是本地
PATH或者远程GIT repository
URL指向的一组文件。
从Dockerfile构建image
Dockerfile在Context root下docker build .
指定某个路径上的Dockerfile
docker build -f /path/to/a/Dockerfile .
指定image tag
docker build -t shykes/myapp . # tag the image into multiple repositories after build docker build -t shykes/myapp:1.0.2 -t shykes/myapp:latest .
App、Service和docker-compose.yml
Services实际上是”containers in production”. 一个App由多个不同的service组成。
docker-compose.yml是一个YAML格式的文件,定义了生产环境(in production)中的Docker container行为,通过该文件对
services定义、运行、扩容。
# run after swarm init docker stack deploy -c docker-compose.yml <app-name/stack> docker service ls # Get service ID docker service ps <app-name>_<service-name> docker stack ps <app-name/stack> docker stack rm <app-name> # take down the app docker swarm leave # take down the swarm on the worker docker swarm leave --force # take down the swarm on the manager
Swarm cluster
Swarm: “Dockerized” cluster,一组运行Docker并被加入到一个Cluster中的机器。machine (物理的或虚拟的)加入swarm后才会变为该swarm的一个node.# enable swarm mode and make current machine a swarm manager docker swarm init # execute on worker machine docker swarm join # levae node docker swarm leave
利用Virtualbox虚拟机创建swarm,myvm1作为swarm manager,myvm2作为worker:
# create virtual machine2 with Virtualbox (Not on Win 10) docker-machine create --driver virtualbox myvm1 docker-machine create --driver virtualbox myvm2 # check the status of machines, 连接上的机器后有一个*号asterisk docker-machine ls # restart a machine that's stopped, run docker-machine start <machine-name> docker-machine ssh myvm1 "docker swarm init --advertise-addr <myvm1 ip>" # 查看swarm中的nodes状态 docker-machine ssh myvm1 "docker node ls"
配置当前shell与swarm manager中的Docker daemon通讯:
docker-machine env myvm1 eval $(docker-machine env myvm1) # unsetting docker-machine shell variable settings eval $(docker-machine env -u)
Stacks
一个Stack是一组相互关联的services,这组service共享依赖,可被安排在一起运行和扩展。App根据复杂程度,可以使用a single stack或者multiple stacks.
相关文章推荐
- docker-compose.yml 语法说明
- lnmp的docker-compose.yml
- docker内程序如何读取dockerfile和compose.yml中设置的环境变量
- docker-compose.yml 语法说明
- 编写docker-compose.yml需要注意的问题
- phpcli的docker-compose.yml
- docker-compose.yml 语法说明【转】
- docker-compose命令和yml文件配置
- docker中容器互联,补充dockerfile与docker-compose.yml
- docker-compose.yml 配置文件编写详解
- docker-compose.yml 语法说明
- Docker部署步骤及“docker-compose.yml”文件示例
- docker-compose.yml 语法说明
- docker-compose.yml 语法说明
- docker-compose.yml文件,编配是报yaml.scanner.ScannerError
- Docker Compose 配置文件 Docker-Compose.yml 文件详解
- docker镜像制作之dockercompose.yml文件---hadoop伪分布式
- 如何写docker-compose.yml,Docker compose file 参考文档
- docker-compose.yml编排LNMP,php找不到文件,注意nginx配置文件