当前位置:   article > 正文

Docker Compose的安装教程、使用教程示例_/usr/bin/docker-compose

/usr/bin/docker-compose

安装教程

下载

下载方法Linux-docker下载docker-compose很慢、太慢、中断解决办法

修改权限

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

创建软链

ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
  • 1

参数解释:

  • ln:用于在Linux系统中创建一个符号链接。
  • -s:表示创建一个符号链接。
  • /usr/local/bin/docker-compose:表示要创建符号链接的源文件路径。
  • /usr/bin/docker-compose:表示要创建符号链接的目标路径。

因此,这个ln命令的作用是在/usr/bin目录下创建一个名为docker-compose的符号链接,指向/usr/local/bin/docker-compose文件。这样,就可以在任何目录下使用docker-compose命令,而不必在/usr/local/bin目录下执行。这个符号链接相当于是docker-compose命令的快捷方式。

测试是否安装成功

docker-compose version
  • 1

输出
在这里插入图片描述

使用教程

通过docker-compose构建一个在docker中运行的基于python flask框架的web应用。

注意:本例使用到了python和redis,但是不需要在本地安装,全部以docker镜像容器的形式使用。

1: 定义python应用

  • 目录结构如下
└── compose_test
    ├── docker
    │   └── docker-compose.yml
    ├── Dockerfile
    └── src
        ├── app.py
        └── requirements.txt
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 在compose_test/src/目录下创建python flask应用 compose_test/src/app.py文件。
    内容如下:
from flask import Flask
from redis import Redis

import socket

app = Flask(__name__)
redis = Redis(host='redis', port=6379)

@app.route('/')
def hello():
    count = redis.incr('hits')
    #return 'Hello World! I have been seen {} times.\n'.format(count)
    return 'Hello Container World! I have been seen %s times and my hostname is %s.\n' % (count, socket.gethostname())

if __name__ == "__main__":
    app.run(host="0.0.0.0", debug=True)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 创建python 需求文件 compose_test/src/requirements.txt
    内容如下:
flask
redis
  • 1
  • 2

2.创建容器的Dockerfile文件

在compose_test/目录中创建Dockerfile文件,内容如下:

FROM python:3.7
 
COPY src/ /opt/src
WORKDIR /opt/src
 
RUN pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
CMD ["python", "app.py"]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

Dockerfile文件告诉docker了如下信息:

从Python 3.7的镜像开始构建一个容器镜像。

复制src(即compose_test/src)目录到容器中的/opt/src目录。

将容器的工作目录设置为/opt/src(通过docker exec -it your_docker_container_id bash 进入容器后的默认目录)。
安装Python依赖关系。
将容器的默认命令设置为python app.py。

3.定义docker-compose脚本

在compose_test/docker/目录下创建docker-compose.yml文件,并在里面定义服务,内容如下:

version: '3'
services:
  web:
    build: ../
    ports:
     - "5000:5000"
  redis:
    image: redis:3.0.7
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

这个compose文件定义了两个服务,即定义了web和redis两个容器。

web容器:

使用当前docker-compose.yml文件所在目录的上级目录(compose_test/Dockerfile)中的Dockerfile构建映像。
将容器上的暴露端口5000映射到主机上的端口5000。 我们使用Flask Web服务器的默认端口5000。

redis容器:

redis服务使用从Docker Hub提取的官方redis镜像3.0.7版本。

4.使用Compose构建并运行您的应用程序

在compose_test/docker/目录下执行docker-compose.yml文件:

docker-compose up
# 该命令不是后台启动,控制台输入 Ctrl + c后2个容器都将停止
# 后台运行:docker-compose up -d
# 如果不用默认的docker-compose.yml 文件名:docker-compose -f 另一个文件名.yml up -d
  • 1
  • 2
  • 3
  • 4

运行成功后如下图:
在这里插入图片描述

5.访问浏览器

在浏览器输入ip:5000查看页面如下:
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/74297
推荐阅读
相关标签
  

闽ICP备14008679号