栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

极简入门Docker-Compose部署以及项目编排实战|CSDN创作打卡

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

极简入门Docker-Compose部署以及项目编排实战|CSDN创作打卡

用处:定义、运行多个容器的程序,批量容器编排。

YAML配置文件

single command指令学习

使用Compose三个步骤:

    定义Dockerfile编写docker-compose.yaml运行compose,docker-cmpose up启动

安装docker-compose

Linux

Docker Compose存放在GitHub,高速安装Docker Compose如下:

curl -L https://get.daocloud.io/docker/compose/releases/download/1.27.4/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

给compose指令赋予可执行的权利

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

检测是否安装成功,不成功的话就需要重启服务器

[root@Contos7 ~]# docker-compose version
docker-compose version 1.27.4, build 40524192
docker-py version: 4.3.1
CPython version: 3.7.7
OpenSSL version: OpenSSL 1.1.0l  10 Sep 2019

Mac

mac其实不需要安装,因为Docker Desktop中就自带compose。

compose初体验 

创建项目结构:

mkdir composetest && cd composetest

创建app.py文件,也就是项目文件:

import time

import redis
from flask import Flask

app = Flask(__name__)
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文件

flask
redis

编写Dockerfile

#将python:3.7-alpine作为基础镜像
FROM python:3.7-alpine   
#设置工作目录    
WORKDIR /code    
#设置环境变量     
ENV FLASK_APP=app.py     
#设置主机匹配所有地址,即所有主机可访问
ENV FLASK_RUN_HOST=0.0.0.0 
#安装包的时候不安装到全局
#使员工gcc来编译程序,但是一旦程序被编译,我就不再需要gcc了,并且可以加快编译速度
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

#docker-compose版本号
version: "3.9"
services:
  web:
    build: .
    ports:
      - "5000:5000"
  redis:
    image: "redis:alpine"

在docker-compose.yml所在目录使用docker-compose up启动(定义、运行多个容器),docker-compose down停止

Tips⚠️ :这样创建出的容器的名字是当前docker-compose.yaml所在目录的目录名加上yml中的服务名,尾部的num表示该容器的副本数量,这些副本可以发送到其他机器上运行,compose会构建一个默认的网络(不使用docker0),所有容器默认在一个网络中

使用idea用docker-compose打包发布

复制jar包pom配置

            
                maven-antrun-plugin
                
                    
                        gen-webadmin
                        package
                        
                            
                                
                            
                        
                        
                            run
                        
                    
                
            

yam规则

https://docs.docker.com/compose/compose-file/compose-file-v3/

docker-compose.yaml核心

#三层

#compops版本号
version: "xxx"
#服务配置
services:
	 server1:
			configuration1:
			configuration2:
			configuration3:
			configuration4
			#启动顺序控制,先启动数组中的服务项,最后再启动本服务
			depends_on:
      
			....
	server2:
			configuration1
			....
#全局配置
netowkr
volume

使用docker-compose.yml构建wordpress博客园

docker-compose.yml

version: "3.8"

services:
  db:
    image: mysql:5.7
    volumes:
      - db_datas:/var/lib/mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: somewordpress
      MYSQL_DATAbase: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: wordpress

  wordpress:
    depends_on:
      - db
    image: wordpress:latest
    ports:
      - "5000:80"
    restart: always
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: wordpress
      WORDPRESS_DB_NAME: wordpress

volumes:
  db_datas: {}

使用docker-compose up -d可以让其在后台启动,不加-d表示在前台启动

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/724802.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号