Docker Compose的安装教程、使用教程示例

曾经终败给现在 2023-10-09 19:45 97阅读 0赞

Docker Compose的安装教程、使用教程示例

  • 安装教程
    • 下载
    • 修改权限
    • 创建软链
    • 测试是否安装成功
  • 使用教程
    • 1: 定义python应用
    • 2.创建容器的Dockerfile文件
    • 3.定义docker-compose脚本
      • web容器:
      • redis容器:
    • 4.使用Compose构建并运行您的应用程序
    • 5.访问浏览器

安装教程

下载

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

修改权限

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

创建软链

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

参数解释:

  • 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命令的快捷方式。

测试是否安装成功

  1. docker-compose version

输出
在这里插入图片描述

使用教程

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

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

1: 定义python应用

  • 目录结构如下

    └── compose_test

    1. ├── docker
    2. └── docker-compose.yml
    3. ├── Dockerfile
    4. └── src
    5. ├── app.py
    6. └── requirements.txt
  • 在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():

    1. count = redis.incr('hits')
    2. #return 'Hello World! I have been seen {} times.\n'.format(count)
    3. return 'Hello Container World! I have been seen %s times and my hostname is %s.\n' % (count, socket.gethostname())

    if name == “main“:

    1. app.run(host="0.0.0.0", debug=True)
  • 创建python 需求文件 compose_test/src/requirements.txt
    内容如下:

    flask
    redis

2.创建容器的Dockerfile文件

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

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

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文件,并在里面定义服务,内容如下:

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

这个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文件:

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

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

5.访问浏览器

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

发表评论

表情:
评论列表 (有 0 条评论,97人围观)

还没有评论,来说两句吧...

相关阅读