docker

使用docker compose部署多个docker应用

2020-08-30  本文已影响0人  AlexWillBeGood

一般的项目都不只用到一个应用,当项目中有多个应用需要被部署,并且之间还存在关系时,一个个去部署非常麻烦,所以需要使用docker compose来进行统一编排部署。

本文包含:

Linux下载安装docker compose

下载docker-compose文件

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

添加可执行权限

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

检查是否成功安装

docker-compose --version

编写docker-compose.yml文件

编写docker-compose文件不难,可以简单看做是写一个python格式的配置文件。本篇文章不写大而全的内容,更多的参数可以查看https://www.cnblogs.com/wutao666/p/11332186.html

version: "3.0"
services: 
    # 服务名称
    nginx:
        #镜像名称
        image: nginx
        #启动后的容器名称
        container_name: nginx
        #映射宿主机和容器端口
        ports: 
            #80
            - 80:80
            #ssl默认端口
            - 443:443
            #test1端口
            - 8088:8088
            #test2端口
            - 8089:8089
        #设置数据卷用于配置
        volumes: 
            - nginx-vol:/etc/nginx
        # networks: 
        #     smartvideo-bridge:
        #         aliases: 
        #             - nginx
        #链接test1,test2应用,可以直接在nginx.conf使用作为地址
        links: 
            - test1:test1
            - test2:test2
        #设置重新启动为always
        restart: always
    redis:
        image: redis
        container_name: redis
        ports: 
            - 6379:6379
        #命令配置redis密码
        command: redis-server --requirepass yourpassword

        # networks: 
        #     smartvideo-bridge:
        #         aliases: 
        #             - redis
        restart: always
    mysql:
        container_name: mysql
        image: mysql
        ports: 
            - 3306:3306
        environment: 
            MYSQL_ROOT_PASSWORD: 123456
        volumes: 
            - mysql-data-vol:/var/lib/mysql
            - mysql-conf-vol:/etc/mysql/conf.d
        # networks: 
        #     smartvideo-bridge:
        #         aliases: 
        #             - mysql
        # links: 
        #     - test1
        restart: always
    test1:
        image: alexwillbegood/test1
        container_name: test1
        links: 
            - mysql:mysql
            - redis:redis
        volumes: 
            - test1-vol:/usr/share/nginx/html
        # networks: 
        #     smartvideo-bridge:
        #         aliases: 
        #             - test1
        restart: always
    test2:
        image: alexwillbegood/test2
        container_name: test2
        links: 
            - mysql:mysql
            - redis:redis
        volumes: 
            - test2-vol:/usr/share/nginx/html
        # networks: 
        #     smartvideo-bridge:
        #         aliases: 
        #             - test2
        restart: always
#数据卷
volumes: 
    nginx-vol:
    mysql-data-vol:
    mysql-config-vol:
    test1-vol:
    test2-vol:
# networks: 
#     smartvideo-bridge:

docker-compose常用命令

docker-compose pull #拉取文件中涉及的所有镜像,通常情况下,会使用 -d 参数令应用在后台启动
docker-compose up #用于部署一个 Compose 应用
docker-compose stop #停止 Compose 应用相关的所有容器,但不会删除它们
docker-compose down #停止并删除运行中的 Compose 应用
docker-compose rm #用于删除已停止的 Compose 应用。它会删除容器和网络,但是不会删除卷和镜像。
docker-compose restart #重启已停止的 Compose 应用
docker-compose ps #用于列出 Compose 应用中的各个容器。
上一篇下一篇

猜你喜欢

热点阅读