GVKun编程网logo

起飞的感觉,docker-compose(起飞的感觉怎么形容)

4

在这篇文章中,我们将为您详细介绍起飞的感觉,docker-compose的内容,并且讨论关于起飞的感觉怎么形容的相关问题。此外,我们还会涉及一些关于10.docker学习笔记之入门,docker-co

在这篇文章中,我们将为您详细介绍起飞的感觉,docker-compose的内容,并且讨论关于起飞的感觉怎么形容的相关问题。此外,我们还会涉及一些关于10.docker学习笔记之入门,docker-compose端口映射可能会导致的问题、25.docker compose 简介 和 docker-compose.yml 参数介绍、7.docker 学习笔记之入门,docker compose 简单配置、centos7.6 下安装docker,docker compose的知识,以帮助您更全面地了解这个主题。

本文目录一览:

起飞的感觉,docker-compose(起飞的感觉怎么形容)

起飞的感觉,docker-compose(起飞的感觉怎么形容)

docker-compose 是什么?

    docker-compose 是用来定义和运行多容器 Docker 应用程序的工具。


准备阶段

  1. 已经安装 docker 和 docker-compose。

  2. 已经制作了 web1 和 web2 镜像并推送到远程仓库。


编写 docker-compose 文件,并进行服务编排


    1. image:就是你的 docker 镜像
    2. depends_on:代表 web2 本身依赖于 web1,所以 web1 的启动要先于 web2 服务
    3. volumes:可以对应 docker 操作中的 -v home/path/:/docker/path

version: ''1''services: web1: image: docker.shj.com/shj/web1:v1 ports: - "8088:8080" volumes: - /home/logs/:/usr/local/tomcat/logs/ - /home/logs/:/home/logs/ web2: image: docker.shj.com/shj/web2:v1 depends_on: - web1 volumes: - /home/logs/:/usr/local/tomcat/logs/ - /home/logs/:/home/logs/ ports: - "8089:8080" mysql: environment: MYSQL_ROOT_PASSWORD: "shj@123" MYSQL_USER: "root" MYSQL_PASS: "shj@123" image: docker.shj.com/ops/mysql:5.7 ports: - "33306:3306" nginx: image: docker.shj.com/ops/nginx:v1 volumes: - /home/logs/nginx/:/home/logs/nginx/ - /home/shj/nginx/nginx_ssl/:/home/nginx/nginx/conf/cert/ssl/           - /home/shj/nginx/nginx_conf/:/usr/local/nginx/conf/http_vhost/ - /home/shj/web/web2/:/home/shj/apps/web/web2/ - /home/shj/web/web1/:/home/shj/apps/web/web1/ ports: - "80:80"


总结

    docker-compose 适合于需要多个容器相互配合来完成服务的运行,当我们在工作中遇到一个项目运行,需要多个服务配合甚至数据库、负载均衡等这个时候我们可以考虑使用 Compose 编排管理,提高部署效率。


推荐阅读


如何使用 docker?



                       关注【被讨厌的勇气】

本文分享自微信公众号 - 云原生技术爱好者社区(programmer_java)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与 “OSC 源创计划”,欢迎正在阅读的你也加入,一起分享。

10.docker学习笔记之入门,docker-compose端口映射可能会导致的问题

10.docker学习笔记之入门,docker-compose端口映射可能会导致的问题

docker run的时候如果用上了-p或者docker-compose up -d 的时候用了ports:,那么就存在端口映射,在配置主从的时候,监听公网的其他端口如:

这个时候需要配置从节点真实公网映射的地址和端口

# slave-announce-ip 5.5.5.5
# slave-announce-port 1234

哨兵真实公网映射地址和端口

# sentinel announce-ip <ip>
# sentinel announce-port <port>

集群真实公网映射地址和端口

# cluster-announce-ip <ip> #地址
# cluster-announce-port <port> #数据端口
# cluster-announce-bus-port <port> #节点通信端口

可以配合sh脚本和docker-compose 来达到动态修改的效果

docker-compose.yaml

version: "3.6"
#设置网络环境
networks:
    #引用外部预先定义好的网段
    redis-network:
        external:
            name: redis-network
services:
    sentinel-1:
        image: redis
        container_name: sentinel-1
        ports:
            - "26386:26379"
        networks:
            redis-network:
                ipv4_address: 192.168.1.14
        volumes:
            - "/usr/docker/08/sentinel-1:/usr/src/redis"
        environment: #环境变量
            - REALIP=XXX.XXX.XXX.XXX 
            - REALPORT=26386
        command: ["redis-sentinel","/usr/src/redis/conf/sentinel.conf"]
        entrypoint: #执行
            - /bin/sh
            - /usr/src/sh/redis.sh
        privileged: true  #特殊权限
        working_dir: /usr/src/redis #工作目录
        stdin_open: true  #打开标准输入
        tty: true  #模拟伪终端

redis.sh

echo " slave-announce-ip $REALIP
       slave-announce-port $REALPORT " >> /usr/src/redis/conf/redis.conf
redis-server /usr/src/redis/conf/redis.conf
 

生成redis docker的Dockerfile

FROM alpine
RUN sed -i ''s/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g'' /etc/apk/repositories \
  && apk add  gcc g++ libc-dev  wget vim  openssl-dev make  linux-headers \
  && rm -rf /var/cache/apk/*

#通过选择更小的镜像,删除不必要文件清理不必要的安装缓存,从而瘦身镜像
#创建相关目录能够看到日志信息跟数据跟配置文件
RUN mkdir -p /usr/src/redis \
      && mkdir -p /usr/src/redis/data \
      && mkdir -p /usr/src/redis/conf \
      && mkdir -p /usr/src/sh         \
      && mkdir -p /usr/src/redis/log   \
      && mkdir -p /var/log/redis
RUN wget  -O /usr/src/redis/redis-4.0.11.tar.gz  "http://download.redis.io/releases/redis-4.0.11.tar.gz" \
   && tar -xzf /usr/src/redis/redis-4.0.11.tar.gz  -C /usr/src/redis \
   && rm -rf /usr/src/redis/redis-4.0.11.tar.tgz

RUN cd /usr/src/redis/redis-4.0.11 &&  make && make PREFIX=/usr/local/redis install \
&& ln -s /usr/local/redis/bin/*  /usr/local/bin/  && rm -rf /usr/src/redis/redis-4.0.11

COPY ./redis/sh/redis.sh   /usr/src/sh
RUN  chmod +x  /usr/src/sh/redis.sh


 

25.docker compose 简介 和 docker-compose.yml 参数介绍

25.docker compose 简介 和 docker-compose.yml 参数介绍

1. docker compose概念  文档  https://docs.docker.com/compose/compose-file/compose-versioning

  一个基于 docker 的工具

  可以通过一个 yml 文件定义多容器的 docker 应用

  通过一条命令就可以根据 yml 文件的定义 去创建或者管理这多个容器

2 docker compose 版本 2 与 版本 3 的区别

  最大的区别

    version 2 只能用于单机

    version 3 可用于多机

3. docker-compose.yml

  

    Services

      一个 service 代表一个 container , 这个 container 可以从 dockerhub 的 image 来创建, 或者从本地的 Dockerfile build出来的image 来创建

      service 的启动 类似与 docker run , 我们可以给其指定 network 和 volume . 所以可以给 service 指定 network 和 volume 的引用

      eg :

      docker run -d --name db -v db-data:/var/liv/postgresql/data --network back-tier  postgres:9.4

      services:

        db:                #service 的名称为 db

          image: postgres:9.4      #service image 为 postgres:9.4  这是从远程拉取的

          volumes:

            - "db-data:/var/liv/postgresql/data"  #将外部db-data挂载到container 的 /var/liv/postgresql/data 内

          networks:

            - back-tier        #网络为 back-tier

      eg2:

      docker run -d --link db --link redis --network back-tier  worker

      services:

        worker:

          build: ./worker

          links:

            - db

            - redis

          networks:

            - back-tier        #在同一个网络上 不需要links

    Volumes:

      上面 的

      volumes:

       - "db-data:/var/liv/postgresql/data"  #将外部db-data挂载到container 的 /var/liv/postgresql/data 内

      会有单独的一个 volumes (与 services 同级别) 对db-data 进行 阐述

      类似于 docker volume create db-data

      eg:

      volumes:

        db-data:

    Nerworks:

      上面 的

      networks:

        - back-tier        #在同一个网络上 不需要links

      会有单独的一个 networks (与 services 同级别) 对back-tier 进行 阐述

      类似于  docker nerwork create -d bridge back-tier

      networks:

        front-tier:

          driver: bridge

        back-tier:

          driver: bridge

4编写 docker-compose.yml

# docker compose api 版本

version: ''3''

 

services:

# 定义了 两个 service 分别是 名字分别是 wordpress 和 mysql

  wordpress:

#image 为 word press

    image: wordpress

#本地 8888 端口 映射 容器 80 端口

    ports:

      - 8888:80

#wordpress 连接数据库 的 host 为 mysql , passwword 为 root 类似于 -e

    environment:

      WORDPRESS_DB_HOST: mysql

      WORDPRESS_DB_PASSWORD: root

#指定连接 的网络 为 my-bridge

    networks:

      - my-bridge

 

  mysql:

    image: mysql:5.7.27

# 数据库 root 的 连接密码 和 所使用的数据库名称

    environment:

      MYSQL_ROOT_PASSWORD: root

      MYSQL_DATABASE: wordpress

# 外部 mysql-data 挂载到 容器内的 /var/lib/mysql

    volumes:

      - mysql-data:/var/lib/mysql

#指定连接 的网络 为 my-bridge

    networks:

      - my-bridge

 

# 定义 volumes

volumes:

  mysql-data:

 

# 定义 networks

networks:

  my-bridge:

    driver: bridge

 

7.docker 学习笔记之入门,docker compose 简单配置

7.docker 学习笔记之入门,docker compose 简单配置

version: "3.6"
#设置网络环境
networks:
    #自定义网络
    nginx-network:
        ipam:
            driver: bridge
            config:
                - subnet: "172.16.238.0/24"
    #引用外部预先定义好的网段
    redis-network:
        external:
            name: redis-network
services:
    nginx:
        image: nginx
        container_name: nginx-compose
        environment:  #设置环境变量
            password: "123456"
        ports:
            - "8003:80"
        networks:
            redis-network:
                ipv4_address: 192.168.1.5
        volumes:
            - "/usr/docker/compose/nginx/conf:/conf"
        command: ["/usr/local/nginx/sbin/nginx","-c","/conf/nginx.conf","-g","daemon off;"]
        privileged: true  #特殊权限
        working_dir: /conf #工作目录
        stdin_open: true  #打开标准输入
        tty: true  #模拟伪终端
    nginx1:
        build:
            context: ./nginx
            dockerfile: Dockerfile
            args:
                buildno: 1
        container_name: nginx-compose2
        ports:
            - "8002:80"
        networks:
            redis-network:
                ipv4_address: 192.168.1.6
        volumes:
            - "/usr/docker/compose/nginx/conf:/conf"
        command: ["/usr/local/nginx/sbin/nginx","-c","/conf/nginx.conf","-g","daemon off;"]

docker-compose up -d #最简单的执行命令,如果没报错的话 docker images;docker ps -a 就会有对应的镜像和容器

docker-compose -p testname1 up -d #给上命名

centos7.6 下安装docker,docker compose

centos7.6 下安装docker,docker compose

一、安装docker

1、升级所有包(这步版本够用不要随便进行,会更新系统内核,可能导致开不了机)
#yum update  //升级所有包,同时升级软件和系统内核
(#yum upgrade //升级所有包,不升级软件和系统内核)
2、安装依赖包 #yum install -y yum-utils device-mapper-persistent-data lvm2 3、添加aliyun docker软件包源 #yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 4、添加软件包源到本地缓存 #yum makecache fast #rpm --import https://mirrors.aliyun.com/docker-ce/linux/centos/gpg 5、安装docker #yum -y install docker-ce 6、设置开机启动docker #systemctl enable docker 7、重启docker #systemctl restart docker

=============================================================
添加国内源:修改或新增 /etc/docker/daemon.json   # vim /etc/docker/daemon.json   {     "registry-mirrors": ["https://pee6w651.mirror.aliyuncs.com"]   }     Docker 官方中国区:https://registry.docker-cn.com     网易:http://hub-mirror.c.163.com     中国科技大学:https://docker.mirrors.ustc.edu.cn     阿里云:https://pee6w651.mirror.aliyuncs.com  #systemctl restart docker.service

二、安装docker-compose

Docker Compose 项目是 Docker 官方的开源项目,负责实现对 Docker 容器集群的快速编排。Docker Compose 中的两个重要概念:

  服务 (service):一个应用容器,实际上可以运行多个相同镜像的实例。

  项目 (project):由一组关联的应用容器组成的一个完整业务单元。

一个项目可以由多个服务关联(容器)而成,并使用docker-compose.yml进行管理。

1、检查linux有没有安装python-pip包
#yum install python-pip -y

2、没有python-pip包就执行命令 
#yum -y install epel-release

3、执行成功之后,再次执行
#yum install python-pip

4、对安装好的pip进行升级 
#pip install --upgrade pip

5、安装docker-compose
#pip install docker-compose

6、检查docker安装
#docker-compose -version

关于起飞的感觉,docker-compose起飞的感觉怎么形容的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于10.docker学习笔记之入门,docker-compose端口映射可能会导致的问题、25.docker compose 简介 和 docker-compose.yml 参数介绍、7.docker 学习笔记之入门,docker compose 简单配置、centos7.6 下安装docker,docker compose的相关信息,请在本站寻找。

本文标签:

上一篇SQLiteException: no such column:好

下一篇python计算codis中key分布在哪个slot中(codility python)