docker--supervisor、compose.pdf
来源:互联网 发布:电影社交网络百度云 编辑:程序博客网 时间:2024/05/22 16:52
一、使用 Supervisor 来管理进程
net.ipv4.ip_forward = 1
[root@gy apache]# vim Dockerfile
下面是命令(COMMAND)的说明:
build
创建或者再建服务
服务被创建后会标记为project_service(比如composetest_db),如果改变了一个服务的Dockerfile或者构建目录的内容,可以使用docker-compose build
来重建它
help
显示命令的帮助和使用信息
kill
通过发送SIGKILL
的信号强制停止运行的容器,这个信号可以选择性的通过,比如: docker-compose kill -s SIGKINT
logs
显示服务的日志输出
port
为端口绑定输出公共信息
ps
显示容器
pull
拉取服务镜像
rm
删除停止的容器
run
在服务上运行一个一次性命令,比如: docker-compose run web
Python manage.pyshell
scale
设置为一个服务启动的容器数量,数量是以这样的参数形式指定的:service=num,比如: docker-compose scale web=2 worker=3
start
启动已经存在的容器作为一个服务
stop
停止运行的容器而不删除它们,它们可以使用命令docker-composestart
重新启动起来
up
为一个服务构建、创建、启动、附加到容器
连接的服务会被启动,除非它们已经在运行了
运行docker-composeup -d
会在后台启动容器并使它们运行
–verbose
显示更多输出
–version
显示版本号并退出
-f,–file FILE
指定一个可选的Compose yaml文件(默认:docker-compose.yml)
-p,–project-name NAME
指定可选的项目名称(默认:当前目录名称)
docker-compose.yml命令说明
每一个定义在docker-compose.yml中的服务必须明确指定一个image或者build选项,这与docker run命令行中输入的是对应相同的,对于docker run,在Dockerfile文件中指定的选项(比如CMD、EXPOSE、VOLUME、ENV)是默认的,因此不必在docker-compose.yml中再指定一次
image
标明image的ID,这个image ID可以是本地也可以是远程的,如果本地不存在,Compose会尝试去pull下来
image: ubuntu
image: orchardup/postgresql
image: a4bc65fd
build
该参数指定Dockerfile文件的路径,该目录也是发送到守护进程的构建环境(这句有点),Compose将会以一个已存在的名称进行构建并标记,并随后使用这个image
build: /path/to/build/dir
command
重写默认的命令,覆盖容器启动后默认执行的命令
command:要执行的命令
links
连接到其他服务中的容器,可以指定服务名称和这个链接的别名,或者只指定服务名称
links:
- db
-db:database
-redis
此时,在容器内部,会在/etc/hosts文件中用别名创建一个条目,就像这样:
192.168.221.141 db
192.168.221.141 database
192.168.221.141 redis
环境变量也会被创建,关于环境变量的参数,会在后面讲到
external_links
连接到在这个docker-compose.yml文件或者Compose外部启动的容器,特别是对于提供共享和公共服务的容器。在指定容器名称和别名时,external_links遵循着和links相同的语义用法
external_links:
-redis_1
-project_db_1:mysql
-project_db_1:postgresql
ports
暴露端口,指定两者的端口(主机:容器),或者只是容器的端口(主机会被随机分配一个端口)
注:当以主机:容器的形式来映射端口时,如果使容器的端口小于60,那可能会出现错误,因为YAML会将xx:yy这样格式的数据解析为六十进制的数据,基于这个原因,时刻记得要将端口映射明确指定为字符串
ports:
-"3000"
-"8000:8000"
-"49100:22"
-"127.0.0.1:8001:8001"
expose
暴露端口而不必向主机发布它们,而只是会向链接的服务(linked service)提供,只有内部端口可以被指定
expose:
-"3000"
-"8000"
volumes
挂载路径最为卷,可以选择性的指定一个主机上的路径(主机:容器),或是一种可使用的模式(主机:容器:ro)
volumes:
- /var/lib/mysql
- cache/:/tmp/cache
- ~/configs:/etc/configs/:ro
volumes_from:
从另一个服务或容器挂载它的所有卷。
volumes_from:
- service_name
-container_name
environment
加入环境变量,可以使用数组或者字典,只有一个key的环境变量可以在运行Compose的机器上找到对应的值,这有助于加密的或者特殊主机的值
environment:
RACK_ENV: development
SESSION_SECRET:
environments:
-RACK_ENV=development
-SESSION_SECRET
env_file
从一个文件中加入环境变量
如果通过docker-compose -f FILE 指定了模板文件,则env_file中路径会基于模板文件路径。如果有变量名称与 environment 指令冲突,则以后者为准。
env_file: .env
env_file:
- ./common.env
- ./apps/web.env
- /opt/secrets.env
环境变量文件中每一行必须符合格式,支持 #开头的注释行。
# common.env: Set Rails/Rack environment
RACK_ENV=development
net
网络模式,可以在docker客户端的--net参数中指定这些值
net: "bridge"
net: "none"
net: "container:[name orid]"
net: "host"
dns
自定义DNS服务,可以是一个单独的值或者一张列表
dns: 8.8.8.8
dns:
-8.8.8.8
-9.9.9.9
dns_search
自定义DNS搜索范围,可以是单独的值或者一张列表
dns_search: example.com
dns_search:
-dc1.example.com
-dc2.example.com
使用Compose只需要简单的三个步骤:
首先,使用Dockerfile或docker commit来定义你的应用环境
第二步,用一个docker-compose.yml来定义你的应用,他们可以在下个互隔离的容器中组成你的应用。
第三步,执行docker-composeup -d来启动你的应用,它会根据docker-compose.yml的设置来pull/run相关的容器。测试案例
下面,我们创建一个经典的 Web 项目:一个Haproxy,挂载三个 Web 容器。
docker-haproxy目录,作为项目工作目录,并在其中分别创建两个子目录:haproxy和web。
#mkdir -p /root/docker-haproxy/{haproxy,web}
在/root/docker-haproxy/目录下创建docker-compose.yml文件
在/root/docker-haproxy/haproxy目录下创建haproxy的主配置文件haproxy.cfg
在/root/docker-haproxy/web目录下存放web站点网页文件
目录结构如下图所示:
[root@gy docker-haproxy]# vim dock-compose.yml
[root@gy docker-haproxy]# cd web/
- docker--supervisor、compose.pdf
- docker compose
- docker compose
- docker-compose
- docker-compose
- docker-compose
- docker-compose
- docker compose
- docker-compose
- Docker Compose
- docker compose
- Docker Compose
- Docker Compose
- 【docker配置】Docker compose
- docker compose环境搭建
- Docker实践8:Compose
- Docker compose初探
- docker/compose项目笔记
- SQL知识点汇总(二)
- 关于前端那些事 :一、几个重要协议HTTP(每天进步一点点)
- rac11g 日志
- 你只是看起来很努力
- sublime test中关于开始语言的快捷生成与Emmet插件的小计
- docker--supervisor、compose.pdf
- vue-cli 更改数组中的数据,页面dom及时渲染 Vue.set方法
- SpringCloud: 路由网关(zuul)
- eclipse显示.settings文件
- c#_stringbuilder的使用
- 实习项目经历
- box-sizing 属性
- 【初】SSM框架—使用MyBatis Generator自动创建代码
- 【Node.JS】window下nodejs爬取gbk/gb2312网页出现乱码的解决方案