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