赞
踩
下载方法Linux-docker下载docker-compose很慢、太慢、中断解决办法
chmod +x /usr/local/bin/docker-compose
ln -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
输出
通过docker-compose构建一个在docker中运行的基于python flask框架的web应用。
注意:本例使用到了python和redis,但是不需要在本地安装,全部以docker镜像容器的形式使用。
└── compose_test
├── docker
│ └── docker-compose.yml
├── Dockerfile
└── src
├── app.py
└── requirements.txt
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)
flask
redis
在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"]
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。
在compose_test/docker/目录下创建docker-compose.yml文件,并在里面定义服务,内容如下:
version: '3'
services:
web:
build: ../
ports:
- "5000:5000"
redis:
image: redis:3.0.7
这个compose文件定义了两个服务,即定义了web和redis两个容器。
使用当前docker-compose.yml文件所在目录的上级目录(compose_test/Dockerfile)中的Dockerfile构建映像。
将容器上的暴露端口5000映射到主机上的端口5000。 我们使用Flask Web服务器的默认端口5000。
redis服务使用从Docker Hub提取的官方redis镜像3.0.7版本。
在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
运行成功后如下图:
在浏览器输入ip:5000查看页面如下:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。