IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> DockerCompose安装卸载以及执行官网例子 -> 正文阅读

[系统运维]DockerCompose安装卸载以及执行官网例子

1.背景

  1. 我们之前自己制作Docker镜像,都是自己通过命令build run 制作,而且是制作单个镜像。

  2. 那么,如果我想制作多个镜像呢?刚刚提到的方式是不是效率太低了,所以这就需要用到DockerCompose解决

  3. DockerCompose 的作用就是批量容器编排

  4. DockerCompose 是Docker官方的开源项目,需要安装

Compose 概念

  • 服务service ,容器。应用。(mysql,redis ,es)
  • 项目project。一组关联的容器

2.安装卸载Compose

其实按照官网一步一步来即可。
官网地址:
https://docs.docker.com/compose/

安装Compose

  1. 下载包,不过官网的这个慢
curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

可以用daocloud下载

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

2.对/usr/local/bin/docker-compose 加执行权限

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

3.测试安装成功

[root@l4 ~]# docker-compose --version
docker-compose version 1.29.2, build 5becea4c

卸载Compose

  1. 删除Compose文件
 rm /usr/local/bin/docker-compose
  1. 卸载使用pip
 pip uninstall docker-compose

官网例子

  1. 创建一个工程文件
mkdir composetest
  1. 创建一个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)
  1. 创建requirements.txt文件
flask
redis
  1. 创建Dockerfile文件
# syntax=docker/dockerfile:1
FROM python:3.7-alpine
WORKDIR /code
ENV FLASK_APP=app.py
ENV FLASK_RUN_HOST=0.0.0.0
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"]
  1. 创建docker-compose.yml文件
version: "3.9"
services:
  web:
    build: .
    ports:
      - "5000:5000"
  redis:
    image: "redis:alpine"
  1. 开始运行
docker-compose up

运行结果失败

WARNING: Ignoring https://dl-cdn.alpinelinux.org/alpine/v3.14/main: temporary error (try again later)
fetch https://dl-cdn.alpinelinux.org/alpine/v3.14/community/x86_64/APKINDEX.tar.gz
WARNING: Ignoring https://dl-cdn.alpinelinux.org/alpine/v3.14/community: temporary error (try again later)
ERROR: unable to select packages:

解决:

[root@l4 composetest]# echo 1 > /proc/sys/net/ipv4/ip_forward
[root@l4 composetest]# sysctl -w net.ipv4.ip_forward=1
net.ipv4.ip_forward = 1
[root@l4 composetest]# sysctl -p /etc/sysctl.conf
[root@l4 composetest]# grubby --update-kernel=ALL --args="systemd.unified_cgroup_hierarchy=0"
  1. 查看启动容器
[root@l4 composetest]# docker ps
CONTAINER ID   IMAGE             COMMAND                  CREATED          STATUS          PORTS                                       NAMES
941cd4cdbbf6   composetest_web   "flask run"              42 seconds ago   Up 41 seconds   0.0.0.0:5000->5000/tcp, :::5000->5000/tcp   composetest_web_1
4a384903d90e   redis:alpine      "docker-entrypoint.s…"   42 seconds ago   Up 41 seconds   6379/tcp                                    composetest_redis_1
[root@l4 composetest]# 

  1. 查看镜像
[root@l4 composetest]# docker images
REPOSITORY        TAG          IMAGE ID       CREATED         SIZE
composetest_web   latest       f74fb203b756   9 minutes ago   184MB
tomcat            latest       4ce9babdd885   7 days ago      680MB
redis             alpine       e24d2b9deaec   2 weeks ago     32.3MB
python            3.7-alpine   206aee52d71d   2 weeks ago     41.9MB
[root@l4 composetest]# 

  1. 测试成功
    在这里插入图片描述
  2. 停止服务
ctrl +c 也可
[root@l4 composetest]# docker-compose down
Stopping composetest_web_1   ... done
Stopping composetest_redis_1 ... done
Removing composetest_web_1   ... done
Removing composetest_redis_1 ... done
Removing network composetest_default
[root@l4 composetest]# 

  1. 查看网络
[root@l4 composetest]# docker network ls
NETWORK ID     NAME                  DRIVER    SCOPE
a3a9b221801d   bridge                bridge    local
def4faae18b6   composetest_default   bridge    local
0c1e234da975   host                  host      local
91e8927f2bd5   none                  null      local

  1. 检查发现redis和web服务在同一网络下,可以通过域名访问
[root@l4 composetest]# docker inspect composetest_default

        "Containers": {
            "3396710c15fe9fb7d81526ae6122d7b4af4cf17fc0f3efb6f8f3c9bf648abb84": {
                "Name": "composetest_web_1",
                "EndpointID": "daadf0308cec9764b855eef2b38ea04af1bdbac88833cac5b6e03a5a810ced4c",
                "MacAddress": "02:42:ac:13:00:03",
                "IPv4Address": "172.19.0.3/16",
                "IPv6Address": ""
            },
            "eda1e4016bbd033b28d897ef7938a8ee9bc56a479cb149d7cc3d0f21e4fdbd3e": {
                "Name": "composetest_redis_1",
                "EndpointID": "6aba87cbdfc1e392bc9610b3d81a0df0a9ca3f285232dca0d98cac8636cd1775",
                "MacAddress": "02:42:ac:13:00:02",
                "IPv4Address": "172.19.0.2/16",
                "IPv6Address": ""
            }
        },

步骤流程分析

composetest_redis_1;composetest_web_1
默认的服务名 文件名_服务名_num num是副本数量

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
Docker网络

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-10-21 12:49:07  更:2021-10-21 12:51:10 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 21:10:39-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码