docker run与docker-compose转换

一、命令行启动

nginx:192.168.8.2
docker run --restart=always --privileged --network br0 --ip 192.168.8.2 -p 80:80 --name mynginx -v $PWD/www:/www -v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf -v $PWD/logs:/wwwlogs -d nginx:1.12.1


redis:192.168.8.9
docker run --restart=always --privileged --network br0 --ip 192.168.8.9 -p 7379:6379 --name myredis -v $PWD/data:/data -d redis:3.2.10 redis-server --appendonly yes


mysql:192.168.8.4
docker run --restart=always --privileged --network br0 --ip 192.168.8.4 -p 3306:3306 --name mymysql -v $PWD/conf/my.cnf:/etc/mysql/my.cnf -v $PWD/logs:/logs -v $PWD/data:/mysql_data -e MYSQL_ROOT_PASSWORD=root@hiekn -d mysql:5.6.37


tomcat:192.168.8.3
docker run --restart=always --privileged --network br0 --ip 192.168.8.3 -p 8080:8080 --name mytomcat -v $PWD/project_logs:/work/tomcat/project_logs -v $PWD/logs:/work/tomcat/logs -v $PWD/webapps:/work/tomcat/webapps -d tomcat


mongo:192.168.8.6
docker run --restart=always --privileged --network br0 --ip 192.168.8.6 -p 27017:27017 --name mymongo -v $PWD/db:/data/db -d mongo:3.4.6


elasticsearch:192.168.8.7
docker run --restart=always --privileged --network br0 --ip 192.168.8.7 -p 9200:9200 -p 9300:9300 --name myes -v $PWD/data:/work/elasticsearch-5.5.1/data -v $PWD/config/elasticsearch.yml:/work/elasticsearch-5.5.1/config/elasticsearch.yml -v $PWD/logs:/work/elasticsearch-5.5.1/logs -d elasticsearch


registry:192.168.8.100
docker run --restart=always --privileged --network br0 --ip 192.168.8.100 -p 5000:5000 --name hiekn_registry -v /work/registry:/var/lib/registry -d registry


SSE:192.168.8.8
docker run --restart=always --privileged --network br0 --ip 192.168.8.8 -p 8081:8080 --name mysse -v $PWD/project_logs:/work/tomcat/project_logs -v $PWD/logs:/work/tomcat/logs -v $PWD/webapps:/work/tomcat/webapps -d tomcat


plantdata_nginx:192.168.8.10
docker run --restart=always --privileged --network br0 --ip 192.168.8.10 -p 81:80 --name plantdata_nginx -v $PWD/www:/www -v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf -v $PWD/logs:/wwwlogs -d nginx:1.12.1


plantdata_redis:192.168.8.5
docker run --restart=always --privileged --network br0 --ip 192.168.8.5 -p 6379:6379 --name plantdata_redis -v $PWD/data:/data -d redis:3.2.10 redis-server --appendonly yes


使用–privileged?真正root权限!
CentOS7中的安全模块selinux把权限禁掉了,临时关闭setenforce 0,永久关闭 修改/etc/sysconfig/selinux文件SELINUX=disabled

  1. Docker的base image做的很精简,甚至都没有init进程,原本在OS启动时执行生效系统变量的过程(sysctl -p)也给省略了,导致这些系统变量依旧保留着kernel默认值
  2. ocker容器中的系统变量在non-priviledged模式下目前(我使用的时docker 1.2.0版本)就无法修改,这 和resolv.conf、hosts等文件映射到宿主机对应的文件有不同。

二、使用docker-compose

  1. 从命令行启动,可以看出如果容器很多,会操作很多次,且自定义的网桥要事先自己定义好
  2. 使用编排服务,一键搞定
  3. 在compose文件所在目录,使用docker-compose up -d就可以启动所有服务,关闭则使用docker-compose down ,同时还删除掉自定义网桥
version: '2.1'
services:
  nginx:
    image: docker.io/nginx:1.12.1
    container_name: mynginx
    restart: always
    networks: 
      app_net:
        ipv4_address: 192.168.8.2
    ports:
     - "80:80"
    volumes:
     - /work/nginx/www:/www
     - /work/nginx/logs:/wwwlogs
     - /work/nginx/conf/nginx.conf:/etc/nginx/nginx.conf
  db:
    image: docker.io/mysql:5.6.37
    container_name: mymysql
    restart: always
    networks: 
      app_net:
        ipv4_address: 192.168.8.4
    environment:
      MYSQL_ROOT_PASSWORD: root
    ports:
     - "3306:3306"
    volumes:
     - /work/mysql/data:/mysql_data
     - /work/mysql/logs:/logs
     - /work/mysql/conf/my.cnf:/etc/mysql/my.cnf
  redis:
    image: docker.io/redis:3.2.10
    container_name: myredis
    restart: always
    command: ["redis-server" ,"--appendonly" ,"yes"]
    networks: 
      app_net:
        ipv4_address: 192.168.8.9
    ports:
     - "7379:6379"
    volumes:
     - /work/myredis/data:/data
  mongo:
    image: docker.io/mongo:3.4.6
    container_name: mymongo
    restart: always
    networks: 
      app_net:
        ipv4_address: 192.168.8.6
    ports:
     - "27017:27017"
    volumes:
     - /work/mongo/db:/data/db
  nginx2:
    image: docker.io/nginx:1.12.1
    container_name: plantdata_nginx
    restart: always
    networks: 
      app_net:
        ipv4_address: 192.168.8.10
    ports:
     - "81:80"
    volumes:
     - /work/plantdata_nginx/www:/www
     - /work/plantdata_nginx/logs:/wwwlogs
     - /work/plantdata_nginx/conf/nginx.conf:/etc/nginx/nginx.conf
  es:
    image: elasticsearch:5.5.1
    container_name: myes
    restart: always
    mem_limit: 2G
    networks: 
      app_net:
        ipv4_address: 192.168.8.7
    ports:
     - "9200:9200"
     - "9300:9300"
    volumes:
     - /work/elasticsearch/config/elasticsearch.yml:/work/elasticsearch-5.5.1/config/elasticsearch.yml   
     - /work/elasticsearch/data:/work/elasticsearch-5.5.1/data
     - /work/elasticsearch/logs:/work/elasticsearch-5.5.1/logs
  reids2:
    image: docker.io/redis:3.2.10
    container_name: plantdata_redis
    restart: always
    command: ["redis-server" ,"--appendonly" ,"yes"]
    networks: 
      app_net:
        ipv4_address: 192.168.8.5
    ports:
     - "6379:6379"
    volumes:
     - /work/myredis/data:/data
  tomcat2:
    image: tomcat:8.0.45
    container_name: mysse
    restart: always
    networks: 
      app_net:
        ipv4_address: 192.168.8.8
    ports:
     - "8081:8080"
    depends_on:
     - mongo
    volumes:
     - /work/sse/webapps:/work/tomcat/webapps
     - /work/sse/project_logs:/work/tomcat/project_logs
     - /work/sse/logs:/work/tomcat/logs
  tomcat:
    image: tomcat:8.0.45
    container_name: mytomcat
    restart: always
    networks: 
      app_net:
        ipv4_address: 192.168.8.3
    ports:
     - "8080:8080"
    depends_on:
     - db
     - redis
    volumes:
     - /work/tomcat/webapps:/work/tomcat/webapps
     - /work/tomcat/project_logs:/work/tomcat/project_logs
     - /work/tomcat/logs:/work/tomcat/logs
  hiekn_registry:
    image: docker.io/registry
    container_name: hiekn_registry
    restart: always
    networks: 
      app_net:
        ipv4_address: 192.168.8.100
    ports:
     - "5000:5000"
    volumes:
     - /work/registry:/var/lib/registry
networks:
  app_net:
    driver: bridge
    enable_ipv6: true
    ipam:
      driver: default
      config:
      - subnet: 192.168.8.0/24
        gateway: 192.168.8.1
      - subnet: 2001:3984:3989::/64
        gateway: 2001:3984:3989::1
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kse_music

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值