docker:二、(1)安装docker-compose并统一拉取镜像
安装docker-compose方法:#curl -L https://github.com/docker/compose/releases/download/1.24.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose补:权限问题处理# chmod +x /usr...
安装docker-compose
方法:
#curl -L https://github.com/docker/compose/releases/download/1.24.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
补:权限问题处理
# chmod +x /usr/local/bin/docker-compose
查看版本信息
# docker-compose --version
但是此方法会经常因为网络的原因而无法安装,网络通畅使用比较好。
待安装完成后,执行查询版本的命令,即可安装docker-compose
docker-compose version
Compose使用实例
在本例中将会实现启动nginx服务及一个数据卷容器,并将该数据卷容器作为nginx的静态文件
1.创建compose文件夹
sudo mkdir /usr/local/common
cd /usr/local/common
2.创建docker-compose.yml文件
sudo touch docker-compose.yml
sudo vim docker-compose.yml
在docker-compose.yml中输入以下内容:
nginx:
restart: always
image: jwilder/nginx-proxy:latest
ports:
- "80:80"
- "443:443"
volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
- /var/run/docker.sock:/tmp/docker.sock:ro
- ./certs:/etc/nginx/certs
logstash:
image: logstash:latest
command: logstash -f/config-dir/logstash.conf
volumes:
- ./logstash:/config-dir
- /root/docker-data/logstash:/logstash-all
参考:http://blog.csdn.net/dream_broken/article/details/52314993
volumes
卷挂载路径设置。可以设置宿主机路径(HOST:CONTAINER)或加上访问模式(HOST:CONTAINER:ro)。
volumes:
- /var/lib/mysql
- cache/:/tmp/cache
- ~/configs:/etc/configs/:ro
挂载文件,A:B 即:卷挂载路径设置 /宿主机路径:/访问模式:ro
将A的内容挂载到B,实现数据分离,B镜像在启动时,通过挂载路径读取A所存储的数据或配置文件,
注:1、如果B容器中指定的文件夹不存在,会自动生成,
2、没有:ro命令,在B中新建/生产文件,会同步到A中
3、使用:ro指定该volume为只读。注意:如果容器中指定的挂载目录存在相同的文件时,会被宿主机覆盖掉
ports
暴露端口信息。
使用宿主:容器(HOST:CONTAINER)格式或者仅仅指定容器的端口(宿主将会随机选择端口)都可以。
ports:
- "3000"
- "8000:8000"
- "127.0.0.1:8001:8001"
注:当使用 HOST:CONTAINER 格式来映射端口时,如果你使用的容器端口小于 60 你可能会得到错误得结果,因为 YAML 将会解析 xx:yy 这种数字格式为 60 进制。所以建议采用字符串格式。
如10.224.225.121:8084:8084,即宿主机端口8084映射到容器的8084端口
links
链接到其它服务中的容器。使用服务名称(同时作为别名)或服务名称:服务别名(SERVICE:ALIAS)格式都可以。
links:
- db
- db:database
- redis
使用的别名将会自动在服务容器中的 /etc/hosts 里创建。例如:
172.17.2.186 db
相应的环境变量也将被创建。
external_links
链接到 docker-compose.yml 外部的容器,甚至并非Compose 管理的容器。参数格式跟 links 类似。
external_links:
- redis_1
- project_db_1:mysql
- project_db_1:postgresql
如- common_mongo_1:mongoDb
即,将common_mongo_1 的名称设置为 mongoDB,在其他容器都挂载宿主机的时候,可直接引用mongoDB,如service项目,mongo.host=127.0.0.1:27017可改为mongo.host=mongoDB
environment
设置环境变量。你可以使用数组或字典两种格式。
只给定名称的变量会自动获取它在 Compose 主机上的值,可以用来防止泄露不必要的数据。
environment:
- RACK_ENV=development
- SESSION_SECRET
environment:
VIRTUAL_HOST: www.yeamoney.cn 指定域名
NODE_ENV:production 生产环境
serverA: 10.55.119.111 服务器A
serverB: 10.55.110.214 服务器B
localNetIP: 10.21.215.111 本地服务器
JVM_ARGS:-Xmx2500m JVM设置
3.启动
docker-compose up -d
注:使用命令docker-compose ps查看运行状况
异常:
java.lang.IllegalStateException:Nexus work directory already in use: /sonatype-work
解决: 给对应文件目录添加权限(这不是因为重复使用造成的) :
chown -R 200:200 /var/lib/nexus-data/
参考: 镜像拉取地址:https://hub.docker.com
引用参数参考:https://www.cnblogs.com/freefei/p/5311294.html
更多推荐
所有评论(0)