安装使用docker-compose
安装使用 docker-compose
安装
1. 包安装 docker-compose
既然使用了 docker-compose 那自然得安装了
在 GitHub 上拉取过慢,建议在国内源 DaoCloud 中拉取:
curl -L https://get.daocloud.io/docker/compose/releases/download/1.29.2/docker-compose-`uname -s`-`uname -m` > /usr/local/soft/docker-compose其中的/usr/local/soft/docker-compose 为自己想要安装的 docker-compose 的路径,可自行修改
修改指向
凡是在之前修改了安装地址都需要修改指向
ln -sf /usr/local/soft/docker-compose /usr/local/bin/docker-compose让 /usr/local/soft/docker-compose 指向 /usr/local/bin/docker-compose,以避免出现以下问题:
-bash: /usr/local/bin/docker-compose: No such file or directory
yml 安装 docker-compose
yum -y install epel-release
yum install python3-pip
pip3 install --upgrade pip
pip3 install docker-compose5. 确认版本
docker-compose --version
编写 docker-compose
要编写一个 docker-compose 文件,你需要定义你的服务(services)、网络(networks)和卷(volumes)。docker-compose 是一个工具,用于定义和运行多容器 Docker 应用程序。以下是创建 docker-compose.yml 文件的基本步骤和示例。
1. 创建 docker-compose.yml 文件
首先,在你的项目根目录下创建一个名为 docker-compose.yml 的文件。
2. 定义服务(Services)
在 docker-compose.yml 文件中,你可以定义一个或多个服务。每个服务通常对应一个容器。例如,如果你正在运行一个 Web 应用,你可能会定义一个 Web 服务和一个数据库服务。
version: '3'
services:
web:
image: nginx:latest
ports:
- "80:80"
volumes:
- ./html:/usr/share/nginx/html
networks:
- mynetwork
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: example
volumes:
- dbdata:/var/lib/mysql
networks:
- mynetwork
volumes:
dbdata:
networks:
mynetwork:
driver: bridge解释:
- version: 指定 docker-compose 文件格式的版本。
- services: 定义了所有服务。每个服务可以有自己的配置,如镜像、端口映射、卷挂载和网络。
- web: 定义了一个使用 Nginx 镜像的服务,将容器的 80 端口映射到宿主机的 80 端口,并挂载了一个卷。
- db: 定义了一个使用 MySQL 镜像的服务,设置了环境变量
MYSQL_ROOT_PASSWORD,并挂载了一个卷用于持久化数据。
- volumes: 定义了持久化数据的卷。在上面的例子中,
dbdata卷被用来存储 MySQL 的数据。 - networks: 定义了网络配置。在上面的例子中,定义了一个名为
mynetwork的网络接模式。
3. 使用 docker-compose 命令
在包含 docker-compose.yml 的目录下,你可以使用以下命令来管理你的服务:
- 启动服务:
docker-compose up或docker-compose up -d(后台运行) - 停止服务:
docker-compose down - 查看运行中的容器:
docker-compose ps - 查看日志:
docker-compose logs或docker-compose logs [service_name]
4. 进阶使用
根据需要,你还可以添加更多的配置选项,比如依赖关系(depends_on)、健康检查(healthcheck)、重启策略(restart)等。例如:
services:
web:
image: nginx:latest
depends_on:
- db
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost"]
interval: 1m30s
timeout: 10s
retries: 3这样,你就能够编写一个基本的 docker-compose.yml 文件来管理你的多容器 Docker 应用了。