Docker Compose安装和使用

一、安装 docker compose(Linux)

      https://docs.docker.com/compose/install/  选择linux 即可,Windows和Mac OS 安装Docker时自动安装docker-compose

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

或者

curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-Linux-x86_64" -o /usr/local/bin/docker-compose

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

 注:如果下载太慢,可以在Windows本地下载,再重命名为docker-compose后拷贝到/usr/local/bin/文件夹下

二、docker-compose使用

2.1、docker-compose命令介绍

常用: 

  •   docker-compose build     # 如果 docker-compose.yml 中有镜像要 build 可以先 build
  •   docker-compose up      # 根据 docker-compose.yml 安装 docker-compose 的服务
  •   docker-compose up -d    # 根据 docker-compose.yml 安装 docker-compose 的服务 后台运行
  •   docker-compose down    # 停止 服务, 删除 容器 ,删除 网络,删除 挂载
  •   docker-compose stop     # 停止 服务
  •        docker-compose rm             # 从容器中删除停止的服务
  •   docker-compose start     # 启动 服务
  •   docker-compose restart    # 重启 服务
  •   docker-compose ls    # 列出所有容器
  •   docker-compose images   # 列出所使用的镜像
  •   docker-compose exec [service_name: eg wordpress] bash  # 进入正在服务的容器内部

2.2、安装启动:docker-compose up 

 # 以docker-compose.yml 为配置文件启动docker (因为默认为docker-compose.yml,故可简写为docker-compose up)

#  docker-compose.yml 文件 见附件

docker-compose -f docker-compose.yml up

扫描二维码关注公众号,回复: 8622453 查看本文章

2.3、验证一下

2.4、进入容器内部

  • docker-compose exec mysql bash
  • docker-compose exec wordpress bash 

三、docker-compose 从本地 的 Dockerfile 创建 服务

3.1、docker-compose.yml文件

version: "3"

services:

  redis:
    image: redis

  web:
    build:
      context: .
      dockerfile: Dockerfile
    ports:
      - 8080:5000
    environment:
      REDIS_HOST: redis

3.2、Dockerfile文件 

FROM python:2.7
LABEL maintaner="Peng Xiao [email protected]"
COPY . /app
WORKDIR /app
RUN pip install flask redis
EXPOSE 5000
CMD [ "python", "app.py" ]

3.3、app.py文件 

from flask import Flask
from redis import Redis
import os
import socket

app = Flask(__name__)
redis = Redis(host=os.environ.get('REDIS_HOST', '127.0.0.1'), port=6379)


@app.route('/')
def hello():
    redis.incr('hits')
    return 'Hello Container World! I have been seen %s times and my hostname is %s.\n' % (redis.get('hits'),socket.gethostname())


if __name__ == "__main__":
    app.run(host="0.0.0.0", port=5000, debug=True)

附件:docker-compose.yml文件

version: '3'
 
services:
 
  wordpress:
    image: hub.c.163.com/library/wordpress
    ports:
      - 8080:80
    environment:
      WORDPRESS_DB_HOST: mysql
      WORDPRESS_DB_PASSWORD: 123
    networks:
      - my-bridge
 
  mysql:
    image: hub.c.163.com/library/mysql
    ports:
      - 3306:3306
    environment:
      MYSQL_ROOT_PASSWORD: 123
      MYSQL_DATABASE: wordpress
    volumes:
      - mysql-data:/var/lib/mysql
    networks:
      - my-bridge
 
volumes:
  mysql-data:
 
networks:
  my-bridge:
    driver: bridge
发布了382 篇原创文章 · 获赞 306 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/lixinkuan328/article/details/103932125
今日推荐