美文网首页docker
使用docker compose部署多个docker应用

使用docker compose部署多个docker应用

作者: AlexWillBeGood | 来源:发表于2020-08-30 15:52 被阅读0次

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

    本文包含:

    • Linux下载安装docker compose
    • 编写docker-compose.yml文件
    • 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 应用中的各个容器。
    

    相关文章

      网友评论

        本文标题:使用docker compose部署多个docker应用

        本文链接:https://www.haomeiwen.com/subject/vulesktx.html