Docker入门之compose相关

环境:

docker compose是什么?

Compose 是 Docker 容器进行编排的工具,定义和运行多容器的应用,可以一条命令启动多个容器,使用Docker Compose不再需要使用shell脚本来启动容器。用于定义和运行多容器Docker应用程序的工具。通过Compose,我们可以使用YAML文件来配置应用程序的服务。然后,使用一个命令,就可以从配置中创建并启动所有服务。

在Linux上安装compose:

1.运行如下命令安装最近compose稳定的版本:

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

2.将可执行权限应用于二进制文件:

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

3.测试安装

docker-compose --version

如果出现版本号则安装成功

docker-compose version 1.29.2, build 5becea4c

开始使用compose:

1.设置

(1)为项目创建目录并且进入该目录

mkdir /composetest
cd /composetest/

(2)创建一个在项目目录中调用的文件,并将其粘贴到:app.py

[root@docker composetest]# cat 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)
[root@docker composetest]# 

(3)创建在项目目录中调用的另一个文件,并将其粘贴到:requirements.txt

[root@docker composetest]# cat requirements.txt 
flask
redis
[root@docker composetest]# 

2.创建docker文件:

在composetest目录中,创建一个名为以下内容并粘贴以下内容的文件:Dockerfile

[root@docker composetest]# cat Dockerfile 
# syntax=docker/dockerfile:1
FROM centos:latest    #从centos最新版映像开始构建映像
WORKDIR /code        #工作目录设置为/code
ENV FLASK_APP=app.py   #设置命令使用的环境变量  flask
ENV FLASK_RUN_HOST=0.0.0.0
RUN yum install  gcc python3 -y  #安装gcc  python3等依赖项
COPY requirements.txt requirements.txt   
RUN pip3 install -r requirements.txt      #复制并安装 Python 依赖项requirements.txt
EXPOSE 5000   #监听5000端口
COPY . .      #将项目中的当前目录复制到映像中的 workdir
CMD ["flask", "run"]   #将容器的缺省命令设置为 flask run
[root@docker composetest]# 

3.在撰写文件中定义服务

在composetest目录创建文件  docker-compose.yml并写入下列内容

[root@docker composetest]# cat docker-compose.yml 
version: "3.9"
services:
  web:
    build: .
    ports:
      - "5000:5000"
  redis:
    image: "redis:alpine"
[root@docker composetest]# 

这个文件中定义了两个服务:web和redis

web服务使用从当前目录中生成的镜像。然后,它将容器和主机绑定到公开的端口 。此服务使用 Flask Web 服务器的默认端口

redis服务使用从 Docker Hub 注册表中提取的公共 Redis 镜像

4.运行。

[root@docker composetest]# docker-compose up

 出现如图画面则成功

 

 

 不断刷新页面xshell也会及时更新,而且docker ps能看出正在运行的容器中也有这个容器就说明没问题

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值