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:/wwwv 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.cnfv 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/projectlogs:/work/tomcat/projectlogsv 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/elasticsearch5.5.1/datav 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/projectlogs:/work/tomcat/projectlogsv 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:/wwwv 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

你可能感兴趣的:(docker)