Docker是一种轻量级的容器化技术,它可以将应用程序及其依赖项打包到一个可移植的容器中,并且可以在不同的环境中运行,从而实现应用程序的快速部署和扩展。
而Docker服务编排工具可以自动化部署、管理和协调多个Docker容器,以实现复杂的应用程序和服务的部署和管理。常见的Docker服务编排工具包括 Docker Compose、Docker Swarm 和 Kubernetes 等。
Docker Compose 是一种定义和运行多个Docker容器的工具,可以使用YAML文件定义多个容器之间的关系和依赖,并一键部署整个应用程序。
Docker Swarm 是Docker官方提供的一种集群管理工具,可以协调多个Docker容器,并将它们组织成一个高可用的集群,以实现应用程序的高可用性和扩展性。
Kubernetes 是一种开源的容器编排平台,它可以自动部署、扩展和管理多个Docker容器,具有高可用性、弹性伸缩、自我修复等特性,被广泛用于云原生应用程序的部署和管理。
此博文主要围绕 Docker Compose,后续将围绕 K8s 出一系列博文学习;
第一步:下载 Docker Compose 二进制文件
这个命令会从 GitHub 上下载 Docker Compose 的二进制文件。
sudo curl -L "https://github.com/docker/compose/releases/download//docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 部分我选择的是 1.22.0 版本
其中,uname -s 和 uname -m 命令分别返回当前系统的操作系统类型和CPU架构,用来选择正确的二进制文件。
-o /usr/local/bin/docker-compose 将下载的二进制文件保存到/usr/local/bin/docker-compose目录下。
第二步:将下载的二进制文件授权为可执行文件
sudo chmod +x /usr/local/bin/docker-compose
第三步:验证Docker Compose是否安装成功
docker-compose version
安装成功!
第一步:停止并删除了所有正在运行的容器
# 查看所有正在运行的容器
docker ps
# 删除正在运行的容器
docker rm -f <container-id>
若需要删除所有使用docker-compose命令创建的网络和卷:
docker-compose down --volumes
第二步:删除所有 Docker Compose 安装的镜像
docker images
# 删除镜像
docker rmi <image-id>
第三步:卸载 Docker Compose
sudo rm /usr/local/bin/docker-compose
首先先创建一个文件夹,然后创建一个yml文件
Docker Compose 的 YML 文件可以帮助简化管理 Docker 容器的复杂性,简化容器的管理和部署。通过 YML 文件可以快速地启动、停止和管理多个 Docker 容器。
mkdir ~/docker-compose
cd ~/docker-compose
vim docker-compose.yml
然后编写 docker-compose.yml 文件
version: '3'
services:
nginx:
image: nginx
ports:
- 80:80
links:
- app
volumes:
- ./nginx/conf.d:/etc/nginx/conf.d
app:
image: app
expose:
- "8080"
这个 YML 文件定义了两个服务:nginx 和 app。
nginx 服务使用了 nginx 镜像,并将容器内的 80 端口映射到主机的 80 端口。links 属性将该服务连接到 app 服务。volumes 属性将主机的 ./nginx/conf.d 目录挂载到容器的 /etc/nginx/conf.d 目录中。
app 服务使用了 app 镜像,并将容器内的 8080 端口暴露给其他服务使用。
通过这个 YML 文件,可以使用 docker-compose 命令快速启动和管理这两个容器。
然后创建 ./nginx/conf.d 目录
mkdir -p ./nginx/conf.d
最后在 ./nginx/conf.d 目录下编写 xhd.conf 文件
server {
listen 80;
access_log off;
location / {
proxy_pass http://app:8080;
}
}
在 ~/docker-compose 目录下 使用 docker-compose 启动容器
docker-compose up
测试访问
http://你的宿主机ip/hello