zoukankan      html  css  js  c++  java
  • docker--docker-Compose安装与使用

    介绍

    当我们部署一个web应用时,可能需要部署nginx,redis,python,mysql等一些容器,那么问题就来了,这么多容器我们维护起来也很麻烦,要从dockerhub拉取image,要创建多个container,要管理这些容器的启动删除停止。。。

    这么麻烦的事,程序猿肯定是不愿意的,所以有人开发了docker-compose,是基于python语言开发的。

    docker compose是一个工具,这个工具可以通过一个yml文件定义多容器的docker应用,通过一条命令就可以 根据yml文件的定义去创建或者管理多个容器。

    docker-compose.yml的三大部分:version,services,networks

    • version:docker compose的版本,建议使用3.x就可以了
    • services:一个services代表一个container,这个container可以从dockerhub的image来构建,或者从本地的dockerfile build出来的images来创建,services的启动类似docker run,所以可以给services指定network和volume的引用
    • networks:使用的网络模式

    安装

    如果是mac或者wins,安装了docker以后自带了docker-compose,可以使用docker-compose version查看,但是如果是linux就不会安装docker-compose,需要单独安装

    docker-compose 是使用python语言安装的,所以我们需要安装好python和pip,如果不会,请看我的python安装的相关博客。

    安装好python后,使用pip安装

    pip install -i https://pypi.tuna.tsinghua.edu.cn/simple docker-compose==1.24.1

    查看docker-compose版本

    docker-compose version

    Docker-Compose的快速上手

    选一个目录存放docker-compose的配置文件,我在root下的docker-compose

    /root/docker-compose

    在当前目录里编写一个yml文件,名字为 docker-compose.yml 内容如下

    version: '3'
    services:
      mynginx:
        image: nginx

    使用compose操作容器(一定要进入配置文件目录)

    后台启动容器,如果你的配置文件名不是 docker-compose.yml ,需要使用 -f 参数指定,例如 docker-compose up -d -f zouzou.yml , -f 参数的默认值是docker-compose.yml

    -d 是后台运行,不加 -d 参数是前台运行,ctrl+c可以终止

    docker-compose up -d

    查看容器运行情况

    docker-compose ps

    停止并删除容器并删除volume

    docker-compose down --volumes

    停止容器

    docker-compose stop

    停止并删除容器

    docker-compose down

    启动容器

    docker-compose start

    进入mynginx容器内部

    docker-compose exec mynginx bash

    注意:

    • 操作docker-compose一定要在配置文件docker-compose.yml文件路径下操作
    • 格式一定要注意,该空格要空格

    docker-compose的其他配置选项

    docker-compose.yml的三大部分:version,services,networks,最关键是services和networks两个部分

    compose设置网络模式

    compose使用端口映射

    compose设置文件共享

    compose管理多个容器

    docker-compose.yml

    version: '3'
    services:
      nginx:
        image: nginx
        # 网络模式
        network_mode: "host"
        # 挂载
        volumes:
        - /home:/usr/local/nginx/html
        - /var/logs/nginx/logs:/usr/local/nginx/logs
        # 启动的命令
        command: /usr/local/nginx/sbin/nginx -g "daemon off;"
      redis:
        image: redis
        # 映射的端口,bridge模式
        ports:
        - "6380:6379"
  • 相关阅读:
    AngularJS 国际化——Angular-translate
    Elasticsearch Span Query跨度查询
    Elasticsearch 连接查询
    Elasticsearch DSL中Query与Filter的不同
    Lucene查询语法详解
    Elasticsearch 文件目录解释
    Elasticsearch 安装与启动
    《大屏可视化数据》该怎么设计?
    两个大屏可视化案例的布局与实现
    maven 安装后变成 mvn 不是内部命令解决方法
  • 原文地址:https://www.cnblogs.com/zouzou-busy/p/12149088.html
Copyright © 2011-2022 走看看