Docker的使用通俗版

Dockerfile 我认为就是配置文件的意思,touch Dockerfile  或者vi Dockerfile 都可以,然后:wq

Dockerfile 是Docker构建镜像要用到的配置文件

内容的话借鉴别人配置好的,省的麻烦。

反正觉得挺麻烦的,不过大家都用就用吧。

http://www.docker.org.cn/docker/148.html

要不就去看他写的,反正就这样。

docker-compose.yml解释

  • volumes  挂载的路径,把./app(宿主机中的一个目录)挂载到/www/web(容器内的/www/web目录下)
  • build 定义了你的 dockerfile 在哪里,如果没有写 dockerfile 可以不用 build,可以用 images参数定义官方镜像,比如image:mysql:5.7;
  • depends_on表示将依赖其它镜像,比如nginx依赖php-fpm,没有它我nginx没法玩;
  • links定义连接,比如要连接到php-fpm容器,就是php-fpm:php-fpm,后面是别名;
  • ports表示端口映射,80:80表示将80端口映射到宿主机的80端口
  • restart重启,restart: always表示将自动重启
  • command是自动执行的命令
  • 第一次docker-composer build比较久,看你装的东西多不多了

常规必用操作:

后台运行:(守护进程的方式)

docker-compose up -d

查看compose启动的各个容器的状态:

docker-compose ps

进入某个容器,譬如php:

docker-compose exec php bash

退出某个容器

exit

停止 docker compose启动的容器:

docker-compose stop

version: "2"  
services:  
  web:  
    image: nginx:latest  
    ports:  
      - "80:80" 
    restart: always
    volumes:  
      - ./app:/www/web
      - ./services/web/nginx/conf:/etc/nginx
      - ./services/web/nginx/logs:/www/web_logs
    networks:
        - code-network
    depends_on:
      - php
  mysql:  
    image: mysql:5.7 
    volumes:  
      - ./db/mysql/data:/var/lib/mysql 
      - ./db/mysql/example_db:/var/example_db 
      - ./db/mysql/conf.d:/etc/mysql/conf.d      
    restart: always
    environment:
      - MYSQL_ROOT_PASSWORD=123456
      - MYSQL_DATABASE=fecshop
    networks:
      - code-network 
  php:  
    build: 
      context: ./services/php/docker/
    restart: always
    volumes:  
      - ./app:/www/web
      - ./services/php/etc/php7.1.13.ini:/usr/local/etc/php/conf.d/php7.1.13.ini
    depends_on:
      - mongodb
      - mysql
    networks:
        - code-network  
  mongodb:
    image: mongo:3.7
    restart: always
    environment:
      - MONGO_DATA_DIR=/data/db
      - MONGO_LOG_DIR=/data/logs
    volumes:
      - ./db/mongodb/data:/data/db
      - ./db/mongodb/example_db:/data/example_db
      - ./db/mongodb/logs:/data/logs
    networks:
      - code-network 
  
  xunsearch:
    image: hightman/xunsearch:latest
    restart: always
    volumes:
      - ./db/xunsearch/data:/usr/local/xunsearch/data  
    networks:
      - code-network
  redis:
    image: redis:4.0
    restart: always
    environment:
        REDIS_PASS_FILE: /run/secrets/redis-password
    command: [
      "bash", "-c",
      '
       docker-entrypoint.sh
       --requirepass "$$(cat $$REDIS_PASS_FILE)"
      '
    ]
    volumes:
      - ./db/redis/etc/redis.conf:/usr/local/etc/redis/redis.conf 
      - ./db/redis/data:/data 
      - ./db/redis/etc/redis-password:/run/secrets/redis-password 
    networks:
      - code-network 
networks:
  code-network:
    driver: bridge

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值