Docker Compose
Docker Compose
Docker 是一个开放源代码的应用程序容器引擎,可以帮助用户轻松地打包、分发和运行任何应用程序,并且具有开发效率高、部署便捷等优点。
Docker Compose 是 Docker 的一个子项目,可以帮助用户定义和运行多容器 Docker 应用程序。使用 Docker Compose 可以更轻松地管理多个容器的应用程序,例如在本地或云平台上构建和部署微服务应用程序。
参考链接
https://zhuanlan.zhihu.com/p/620097083
1.安装 Docker Compose
在使用 Docker Compose 之前,您需要先安装 Docker 引擎。
然后,您可以通过以下步骤来安装 Docker Compose:
打开官方文档 Docker Compose Releases (https://github.com/docker/compose/releases)
找到适合您服务器系统的版本进行下载。
服务器一般都是时linux系统的
下载后传到虚机一定要 改名字成docker-compose!!!
上传docker-compose到 /usr/local/bin/路径
赋予权限:chmod +x /usr/local/bin/docker-compose
验证是否成功安装docker-compose:docker-compose -v
2.编写 Compose 文件
Docker Compose 使用 YAML 文件来定义应用程序的组件和它们之间的联系。下面是一个使用 Docker Compose 启动 web 应用程序的样例文件:
version: '3'
services:
web:
image: nginx
ports:
- "80:80"
volumes: # 目录挂载,宿主机在前,容器在后
- ./html:/usr/share/nginx/html
environment:
- NGINX_HOST=localhost
-
db:
image: mysql
environment:
- MYSQL_ROOT_PASSWORD=password
volumes: # 目录挂载,宿主机在前,容器在后
- ./mysql:/var/lib/mysql
这个示例定义了两个服务:web和db。
在web服务中,使用了nginx镜像,将容器的80端口映射到主机的80端口,并将当前目录下的html文件夹挂载到容器的/usr/share/nginx/html目录下。同时,设置了NGINX_HOST环境变量为localhost。
在db服务中,使用了mysql镜像,设置了MYSQL_ROOT_PASSWORD环境变量为password,并将当前目录下的mysql文件夹挂载到容器的/var/lib/mysql目录下。
这样,通过Docker Compose可以轻松地启动和管理这两个服务的容器。
以下是 Compose 文件的一些常见选项:
常用配置 | 描述 |
---|---|
version | 指定 Compose 文件格式的版本。 |
services | 定义要启动的服务列表及每个服务的配置。 |
image | 指定要使用的 镜像名:版本号 使用docker images 查出来 REPOSITORY和TAG ,中间用:隔开 |
build | 指定 Dockerfile 的路径或 URL,用于构建自定义 Docker 镜像。 |
ports | 指定端口映射规则,将主机的端口映射到容器中的端口。 |
volumes | 指定挂载的卷目录,将主机的目录和容器中的目录进行映射。 |
除了上述选项外,还可以使用其他选项来定义网格、环境变量、命令、健康检查等。有关更详细的信息,请参阅 Docker Compose 的官方文档。
3.启动、停止、恢复服务
1.要启动 Compose 文件中定义的所有服务,在包含 Compose 文件的目录下执行以下命令:
docker-compose up
2.如果要在后台运行服务,请使用以下命令:
docker-compose up -d
3.要停止所有服务,请使用以下命令:
docker-compose stop
4.要重启所有服务,请使用以下命令:
docker-compose restart
5.要恢复已停止的服务,请使用以下命令:
docker-compose start
以 yml文件进行启动(一般来说常用的为以下这个)
1.按照启动文件生成、启动对应容器:
docker-compose -f a.yml up -d
备注:如果后续修改了启动文件,再执行此指令,则按照启动文件的修改重新创建容器。
如果文件没修改执行此指令,则容器不会做任何修改,也不会重启。
2.按照启动文件重启容器:
docker-compose -f a.yml restart
3。按照启动文件删除容器:
docker-compose -f a.yml down
4.构建和升级服务
1.要构建 Compose 文件中定义的服务,请使用以下命令:
docker-compose build
2.如果您只需要构建某个服务,请使用以下命令:
docker-compose build <service_name>
3.要重新构建服务并强制重新生成镜像,请使用以下命令:
docker-compose up --build
4.要升级服务,请修改 Compose 文件中的版本或其他配置,然后使用以下命令重新构建和启动服务:
docker-compose up --force-recreate --build
请注意,这将删除并重新创建所有容器。