Docker Compose的安装教程、使用教程示例
- 安装教程
- 下载
- 修改权限
- 创建软链
- 测试是否安装成功
- 使用教程
- 1: 定义python应用
- 2.创建容器的Dockerfile文件
- 3.定义docker-compose脚本
- web容器:
- redis容器:
- 4.使用Compose构建并运行您的应用程序
- 5.访问浏览器
安装教程
下载
下载方法Linux-docker下载docker-compose很慢、太慢、中断解决办法
修改权限
chmod +x /usr/local/bin/docker-compose
创建软链
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命令的快捷方式。
测试是否安装成功
docker-compose version
输出
使用教程
通过docker-compose构建一个在docker中运行的基于python flask框架的web应用。
注意:本例使用到了python和redis,但是不需要在本地安装,全部以docker镜像容器的形式使用。
1: 定义python应用
- 目录结构如下
└── compose_test
├── docker
│ └── docker-compose.yml
├── Dockerfile
└── src
├── app.py
└── requirements.txt
- 在compose_test/src/目录下创建python flask应用 compose_test/src/app.py文件。
内容如下:
from flask import Flask
from redis import Redis
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)
if __name__ == "__main__":
app.run(host="0.0.0.0", debug=True)
- 创建python 需求文件 compose_test/src/requirements.txt
内容如下:
flask
redis
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"]
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
这个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
运行成功后如下图:
5.访问浏览器
在浏览器输入ip:5000查看页面如下: