四时宝库

程序员的知识宝库

docker-compose 配置(docker-compose 配置文件修改后,怎么单独重启)

Compose 是用于定义和运行多容器 Docker 应用程序的工具。

通过Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。

Docker Compose 安装

安装 Docker Compose 可以通过下面命令自动下载适应版本的 Compose

sudo curl -L "https://github.com/docker/compose/releases/download/v2.2.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

为安装脚本添加执行权限

sudo chmod +x /usr/local/bin/docker-compose

查看安装是否成功

docker-compose -v

创建文件 docker-compose.yml,在 docker-compose.yml 所在路径下执行该命令 Compose 就会自动构建镜像并使用镜像启动容器

# yaml 配置
version: '3'
services:
  web:
    ports:
     - "5000:5000"
     - "80:80"
    container_name: web
    image: nginx
    volumes:
     - /home/nginx/conf.d:/etc/nginx/conf.d
     - /home/webroot:/home/webroot
     - /home/nginx/logs:/var/log/nginx
    networks:
     - link
  php:
    #image: liuxl0316/7.2-fpm:v2
    ports:
    - "9000:9000"
    image: liuxl0316/phalcon:v1
    container_name: php
    volumes:
     - /home/webroot:/home/webroot
     - /home/php/php.ini:/usr/local/etc/php/php.ini
    stdin_open: true
    tty: true
    # depends_on:
    #   - skywalkingoap
    networks:
     - link
  # mysql:
  #   ports:
  #    - "3307:3306"
  #   image: mysql:5.7
  #   volumes:
  #    - ./mysql/data:/var/lib/mysql 
  #   container_name: mysql
  #   environment:
  #     MYSQL_ROOT_PASSWORD: 123456
  #   networks:
  #    - link
  redis:
    ports:
     - "6379:6379"
    container_name: redis
    image: redis
    networks:
     - link
  mongo:
    ports:
      - "27017:27017"
    container_name: mongo
    image: mongo:latest
    networks:
      - link
  elasticsearch:
    ports:
     - "9200:9200"
    container_name: elasticsearch
    image: elasticsearch:6.7.0
    #image: elasticsearch:7.14.1
    volumes:
      - /home/elasticsearch/6.7.0/data:/usr/share/elasticsearch/data
    # - ./elasticsearch/7.14.1/data:/usr/share/elasticsearch/data
    environment:
     - discovery.type=single-node
     - ES_JAVA_OPTS=-Xms512m -Xmx512m
    # restart: always
    networks:
     - link
  kibana:
    ports:
     - "5601:5601"
    container_name: kibana
    #image: kibana:7.14.1
    image: kibana:6.7.0
    volumes:
     - /home/kibana/config/kibana.yml:/usr/share/kibana/config/kibana.yml
    depends_on:
     - elasticsearch
    links:
     - elasticsearch
    # environment:
    #  - server.name=kibana
    #  - server.host="0.0.0.0"
    #  - elasticsearch.hosts=elasticsearch
    #  - elasticsearch.username='kibana'
    #  - xpack.monitoring.ui.container.elasticsearch.enabled=true
    privileged: true
    networks:
     - link
  jenkins:
    container_name: jenkins
    image: jenkinsci/blueocean
    ports:
     - "8888:8888"
    volumes:
     - /home/webroot:/home/webroot
     - /home/jenkins/data:/var/jenkins_home
     - /var/run/docker.sock:/var/run/docker.sock
    networks:
     - link
    restart: always
networks:
  link:
    driver: "bridge"

docker-compose up 或者 docker-compose up -d // 后台启动并运行容器

Docker Compose使用的三个步骤:

使用 Dockerfile 定义应用程序的环境。

使用 docker-compose.yml 定义构成应用程序的服务,这样它们可以在隔离环境中一起运行。

最后,执行 docker-compose up 命令来启动并运行整个应用程序。

Docker Compose常见命令

#列出所有运行容器

docker-compose ps

#查看服务日志输出

docker-compose logs

#构建或者重新构建服务

docker-compose build

#启动指定服务已存在的容器

docker-compose start redis

#停止已运行的服务的容器

docker-compose stop redis

#删除指定服务的容器

docker-compose rm redis

#构建、启动容器

docker-compose up

#通过发送 SIGKILL 信号来停止指定服务的容器

docker-compose kill redis

#设置指定服务运行容器的个数,以 service=num 形式指定

docker-compose scale user=3 movie=3

#在一个服务上执行一个命令

docker-compose run web bash


文件更改后想使之立刻生效,但是不想手动删除已经建立的 container 等信息可以运行下面命令

重新创建容器实现修改

docker-compose up --force-recreate -d


从容器cp文件到本地:

docker cp kibana:/usr/share/kibana/config/kibana.yml /home/kibana/config/kibana.yml

从本地推送到容器:

docker cp 主机文件路径 容器id:docker容器中配置文件路径

docker cp /home/my.cnf mysql:/etc/mysql/my.cnf

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接