Docker Compose介绍和安装
Docker Compose介绍
Docker Compose是一个工具,用于定义和运行多容器应用程序的工具;
Docker Compose通过yml文件定义多容器的docker应用;
Docker Compose通过一条命令根据yml文件的定义去创建或管理多容器;
Docker Compose 是用来做Docker 的多容器控制,是一个用来把 Docker 自动化的东西。有了 Docker Compose 你可以把所有繁复的 Docker 操作全都一条命令,自动化的完成。
Docker Compose可以做到以下几点:
- 提供工具用于定义和运行多个docker容器应用;
- 使用yaml文件来配置应用服务(docker-compse.yml);
- 可以通过一个简单的命令docker-compse up可以按照依赖关系启动所有服务;
- 可以通过一个简单的命令docker-compose down停止所有服务;
- 当一个服务需要的时候,可以很简单地通过--scale进行扩容;
Docker Compose有以下特征:
更高的可移植性,Docker Compose仅需一个docker-compse up可以完成按照依赖关系启动所有服务,然后使用docker-compose down轻松将其拆解。帮助我们更轻松地部署复杂的应用程序;
单个主机上的多个隔离环境,Compose可以使用项目名称将环境彼此隔离,这带可以在一台计算机上运行同一环境的多个副本,它可以防止不同的项目和服务相互干扰;
Docker Compose安装
Docker Compose安装的最新的版本Docker Compose version v2.12.2,对于Mac和Windows安装好Docker以后,就已经安装好Docker Compose,不需要手动安装,这里的安装方式是基于Linux的Cnetos的,大家也可以参考官方网站去安装。
由于虚拟机之前已经安装Docker,本次只需要安装compose-plugin即可;虚拟机版本如下:
[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
升级所有包的同时也升级软件和系统内核:
[root@localhost ~]# sudo yum update
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirror.lzu.edu.cn
* extras: ftp.ksu.edu.tw
* updates: mirror.lzu.edu.cn
正在解决依赖关系
--> 正在检查事务
---> 软件包 containerd.io.x86_64.0.1.6.8-3.1.el7 将被 升级
---> 软件包 containerd.io.x86_64.0.1.6.9-3.1.el7 将被 更新
---> 软件包 copy-jdk-configs.noarch.0.3.3-10.el7_5 将被 升级
---> 软件包 copy-jdk-configs.noarch.0.3.3-11.el7_9 将被 更新
---> 软件包 docker-ce.x86_64.3.20.10.18-3.el7 将被 升级
---> 软件包 docker-ce.x86_64.3.20.10.21-3.el7 将被 更新
---> 软件包 docker-ce-cli.x86_64.1.20.10.18-3.el7 将被 升级
---> 软件包 docker-ce-cli.x86_64.1.20.10.21-3.el7 将被 更新
---> 软件包 docker-ce-rootless-extras.x86_64.0.20.10.18-3.el7 将被 升级
---> 软件包 docker-ce-rootless-extras.x86_64.0.20.10.21-3.el7 将被 更新
---> 软件包 docker-scan-plugin.x86_64.0.0.17.0-3.el7 将被 升级
---> 软件包 docker-scan-plugin.x86_64.0.0.21.0-3.el7 将被 更新
---> 软件包 java-1.8.0-openjdk.x86_64.1.1.8.0.345.b01-1.el7_9 将被 升级
---> 软件包 java-1.8.0-openjdk.x86_64.1.1.8.0.352.b08-2.el7_9 将被 更新
---> 软件包 java-1.8.0-openjdk-headless.x86_64.1.1.8.0.345.b01-1.el7_9 将被 升级
---> 软件包 java-1.8.0-openjdk-headless.x86_64.1.1.8.0.352.b08-2.el7_9 将被 更新
---> 软件包 tzdata.noarch.0.2022d-1.el7 将被 升级
---> 软件包 tzdata.noarch.0.2022e-1.el7 将被 更新
---> 软件包 tzdata-java.noarch.0.2022d-1.el7 将被 升级
---> 软件包 tzdata-java.noarch.0.2022e-1.el7 将被 更新
安装compose-plugin:
根据不同的操作系统选择不同安装命令
[root@localhost ~]# sudo yum install docker-compose-plugin
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirror.lzu.edu.cn
* extras: ftp.ksu.edu.tw
* updates: mirror.lzu.edu.cn
正在解决依赖关系
--> 正在检查事务
---> 软件包 docker-compose-plugin.x86_64.0.2.12.2-3.el7 将被 安装
--> 解决依赖关系完成
查看安装情况
[root@localhost ~]# docker compose version
Docker Compose version v2.12.2
Docker Compose基本命令介绍
Docker Compose命令基本上和Docker相差不多,主要就是对Docker Compose生命周期控制、日志格式等相关命令,可以通过docker-compose --help进行帮助。
[root@localhost ~]# docker compose --help
Usage: docker compose [OPTIONS] COMMAND
Docker Compose
Options:
--ansi string Control when to print ANSI control characters ("never"|"always"|"auto") (default "auto")
--compatibility Run compose in backward compatibility mode
--env-file string Specify an alternate environment file.
-f, --file stringArray Compose configuration files
--profile stringArray Specify a profile to enable
--project-directory string Specify an alternate working directory
(default: the path of the, first specified, Compose file)
-p, --project-name string Project name
Commands:
build Build or rebuild services
convert Converts the compose file to platform's canonical format
cp Copy files/folders between a service container and the local filesystem
create Creates containers for a service.
down Stop and remove containers, networks
events Receive real time events from containers.
exec Execute a command in a running container.
images List images used by the created containers
kill Force stop service containers.
logs View output from containers
ls List running compose projects
pause Pause services
port Print the public port for a port binding.
ps List containers
pull Pull service images
push Push service images
restart Restart service containers
rm Removes stopped service containers
run Run a one-off command on a service.
start Start services
stop Stop services
top Display the running processes
unpause Unpause services
up Create and start containers
version Show the Docker Compose version information
Run 'docker compose COMMAND --help' for more information on a command.
#构建建启动nignx容器
docker-compose up -d nginx
#进入nginx容器中
docker-compose exec nginx bash
#将会停止UP命令启动的容器,并删除容器
docker-compose down
#显示所有容器
docker-compose ps
#重新启动nginx容器
docker-compose restart nginx
#构建镜像
docker-compose build nginx
#不带缓存的构建
docker-compose build --no-cache nginx
#查看nginx的日志
docker-compose logs nginx
#查看nginx的实时日志
docker-compose logs -f nginx
#验证(docker-compose.yml)文件配置,
#当配置正确时,不输出任何内容,当文件配置错误,输出错误信息
docker-compose config -q
#以json的形式输出nginx的docker日志
docker-compose events --json nginx
#暂停nignx容器
docker-compose pause nginx
#恢复ningx容器
docker-compose unpause nginx
#删除容器
docker-compose rm nginx
#停止nignx容器
docker-compose stop nginx
#启动nignx容器
docker-compose start nginx
Docker Compose实战
更多推荐
所有评论(0)