文章目录
Docker-Compose快速编排工具创建容器
1、下载Docker-Compose
Docker-Compose本身就是一个程序(添加执行权限后可以执行),所以我们一般把他下载到/usr/local/bin/目录下
[root@localhost ~]# cd /usr/local/bin
[root@localhost bin]#
[root@localhost bin]# curl -L "https://github.com/docker/compose/releases/download/v2.17.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
[root@localhost bin]# ls
docker-compose docker-compose.bak
2、给Docker-Compose添加执行权限
[root@localhost bin]# chmod u+x docker-compose
[root@localhost bin]# ls
docker-compose docker-compose.bak
[root@localhost bin]# docker-compose --version
Docker Compose version v2.17.2
3、添加软链接(以后方便启动)
[root@localhost bin]# ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
[root@localhost bin]#
4、编写docker-compose.yml文件
注意:yml文件的名字和格式是固定的,不要自己随便命名
[root@localhost bin]# vim docker-compose.yml
添加如下内容:
version: "3"
services:
nginx:
container_name: www-nginx
image: nginx:latest
restart: always
ports:
- 80:80
volumes:
- /data/webapps/www/:/usr/share/nginx/html/
#相关解释
#version: "3" 是compose的版本,使用2和3都有可以,但是3会支持更多的新特性,建议使用3。
#services 因为是复数,可以创建多个服务的容器。
#nginx 创建nginx服务的容器。
#container_name: www-nginx 要创建的容器的名字。
#image: nginx:latest 使用最新版本镜像。
#restart:设置为always,容器在停止的情况下总是重启。
#宿主机的80端口映射到了容器的80端口。
#目录/data/webapps/www/是宿主机的发布目录,它映射到了容器里的/usr/share/nginx/html/目录。
5、创建发布目录
[root@localhost bin]# mkdir -p /data/webapps/www/
6、在发布目录添加index.html文件
[root@localhost bin]# echo "<h1>hello Nginx Test pages.</h1>" >>/data/webapps/www/index.html
[root@localhost bin]# cat /data/webapps/www/index.html
<h1>hello Nginx Test pages.</h1>
7、启动和运行docker-compose,启动Nginx容器
[root@localhost bin]# docker-compose up -d
[+] Running 2/2
✔ Network bin_default Created
✔ Container www-nginx Started
[root@localhost bin]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a2f531052c19 nginx:latest "/docker-entrypoint.…" 35 seconds ago Up 34 seconds 0.0.0.0:80->80/tcp, :::80->80/tcp www-nginx
8、测试:通过浏览器访问宿主机80端口
9、另外体验docker-compose的关闭、启动和删除
docker-compose stop 关闭容器
docker-compose start 可以重启启动已经关闭服务的容器。
要执行docker-compose rm 必须先要执行docker-compose stop。