docker的学习历程-Compose

Compose的学习

Compose是一个定义和运行多个容器的应用,可以进行批量容器编排。

安装步骤

#使用国内镜像加速下载
curl -L https://get.daocloud.io/docker/compose/releases/download/1.24.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
#增加可执行权限
chmod +x /usr/local/bin/docker-compose

compose的使用步骤

1.编写Dockerfile文件
2.docker-compose.yml文件
3.docker-compose up

compose初体验
创建目录

 mkdir composetest
 cd composetest

创建一个app.py文件

输入内容

 vim app.py
----------------------------------

import time

import redis
from flask import Flask

app = Flask(__name__)
# 注意这里的细节,host使用redis,下文将提到
cache = redis.Redis(host='redis', port=6379)

def get_hit_count():
    retries = 5
    while True:
        try:
            return cache.incr('hits')
        except redis.exceptions.ConnectionError as exc:
            if retries == 0:
                raise exc
            retries -= 1
            time.sleep(0.5)

@app.route('/')
def hello():
    count = get_hit_count()
    return 'Hello World! I have been seen {} times.\n'.format(count)

创建requirements.txt文件

vim requirements.txt
-------------------------
flask 
redis

创建Dockerfile

vim Dockerfile
---------------------
FROM python:3.7-alpine
WORKDIR /code
ENV FLASK_APP=app.py
ENV FLASK_RUN_HOST=0.0.0.0
RUN apk add --no-cache gcc musl-dev linux-headers
COPY requirements.txt requirements.txt
RUN pip install -r requirements.txt
EXPOSE 5000
COPY . .
CMD ["flask", "run"]

创建docker-compose.yml文件

vim docker-compose.yml
---------------------------
# 指定版本信息
version: "3.9"
# 指定将要启动的服务
services:
  web:
  # 制作一个镜像,上下文路径为.
    build: .
  # 设置端口映射
    ports:
      - "5000:5000"
  # 获取镜像
  redis:
    image: "redis:alpine"

运行compose文件

docker-compose up

访问成功
访问成功
docker-compose运行后,发现新建了一个test_compose_default网络
网络信息
注意 :查看网络详细信息发现,通过docker-compose启动的两个容器都在这个网络中,所以通过之前docker学习历程-网络篇可以知道,存在同一个网络中的两个容器可以通过容器名相互访问,这里可以解释app.py文件中redis的host参数为什么可以使用“redis”。
网络详细信息
至此完成了compose文档的初体验
下面是一键运行wordpress的compose.yaml文件

version: '3.3'

services:
  db:
    image: mysql:5.7
    volumes:
      - db_data:/var/lib/mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: "123456"
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: wordpress

  wordpress:
    depends_on:
      - db
    image: wordpress:latest
    ports:
      - "8080:80"
    restart: always
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_NAME: wordpress
volumes:
    db_data: {}

参考资料
compose官网学习
compose.yaml文件指令功能介绍

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值