Task5 Docker Compose


Docker Compose

记录下实验问题

PS D:\Desktop\2021\April\Docker\Docker_Compose> docker-compose up
Docker Compose is now in the Docker CLI, try `docker compose up`

Starting docker_compose_web_1   ... done
Attaching to docker_compose_redis_1, docker_compose_web_1
redis_1  | 1:C 21 Apr 2021 14:33:58.965 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
redis_1  | 1:C 21 Apr 2021 14:33:58.965 # Redis version=6.2.2, bits=64, commit=00000000, modified=0, pid=1, just startedfy a config file use redis-server /path/to/redis.conf
redis_1  | 1:M 21 Apr 2021 14:33:58.966 * monotonic clock: POSIX clock_gettime
redis_1  | 1:M 21 Apr 2021 14:33:58.966 * Running mode=standalone, port=6379.
redis_1  | 1:M 21 Apr 2021 14:33:58.966 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
redis_1  | 1:M 21 Apr 2021 14:33:58.966 # Server initialized
redis_1  | 1:M 21 Apr 2021 14:33:58.966 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
redis_1  | 1:M 21 Apr 2021 14:33:58.966 * Loading RDB produced by version 6.2.2
redis_1  | 1:M 21 Apr 2021 14:33:58.966 * RDB age 2 seconds
redis_1  | 1:M 21 Apr 2021 14:33:58.966 * RDB memory usage when created 0.77 Mb
redis_1  | 1:M 21 Apr 2021 14:33:58.966 * DB loaded from disk: 0.000 seconds
redis_1  | 1:M 21 Apr 2021 14:33:58.966 * Ready to accept connections
web_1    |   File "app.py", line 13
web_1    |     return 'Hello Container World! I have been seen %s times and my hostname is %s.\n' % (redis.get('hits'),socket.gethostname())
web_1    |     ^
web_1    | IndentationError: unexpected indent
docker_compose_web_1 exited with code 1
Gracefully stopping... (press Ctrl+C again to force)
Stopping docker_compose_redis_1 ... done

实例 :artipub——使用 docker-compose 代替 docker run

项目链接:https://github.com/crawlab-team/artipub

  • 通过创建 docker-compose.yaml 文件,内容配置见下文

  • 然后在命令行中输入如下命令

    docker-compose up
  • 然后在浏览器中输入 http://localhost:8000 可以看到界面。

Docker Compose

Compose 简介

Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,我们可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。如果还不了解 YML 文件配置,可以先阅读 YAML 入门教程

Compose 使用的三个步骤:

  • 使用 Dockerfile 定义应用程序的环境。
  • 使用 docker-compose.yml 定义构成应用程序的服务,这样它们可以在隔离环境中一起运行。
  • 最后,执行 docker-compose up 命令来启动并运行整个应用程序。

Compose 安装

Windows 的 Docker 桌面版和 Docker Toolbox 已经包括 Compose 和其他 Docker 应用程序,因此 Windows 用户不需要单独安装 Compose。Docker 安装说明可以参阅 Windows Docker 安装

该项目的 docker-compose.yml 文件

version: '3.3'
services:
  app:
    image: "tikazyq/artipub:latest"
    environment:
      MONGO_HOST: "mongo"
      ARTIPUB_API_ADDRESS: "http://localhost:3000" # 后端 API 地址,如果安装地址不在本机,请修改为协议 + 服务器 IP 地址 + 端口号(默认为 3000)
    ports:
      - "8000:8000" # frontend
      - "3000:3000" # backend
    depends_on:
      - mongo
  mongo:
    image: mongo:latest
    restart: always
    ports:
      - "27017:27017"

这里需要格外注意 yml 文件的格式、缩进、是否有空置、数据格式是否符合等问题,如果出现报错(因为已经遇到错误了,源文件是有个值为空),根据报错信息检查对应的问题。

打开 120.0.0.1:8000

参考资料


文章作者: Terence Cai
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Terence Cai !
  目录