下载docker-compose

sudo curl -L "https://github.com/docker/compose/releases/download/1.28.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

检测是否安装成功

docker-compose -v

创建第一个docker-compose程序

1.创建一个docker-compose.yml文件
touch docker-compose.yml
2.在配置文件中定义一个项目存在哪些服务
version: "3.0"
services:

demo:
build: #启动服务时先将build命令中指定dockerfile打包成镜像,在运行该镜像
context:demo # 指定上下文目录dockerfile所在目录 ,把demo当做当前目录的上下文根目录,然后找寻dockerfile文件
dockerfile: Dockerfile
container_name: demo #指定运行容器后的名称
ports:
- "8081:8081"
networks:
- hello
depends_on:
- tomcat # 依赖于tomcat,必须等下面的tomcat起来后这个demo才能启动


tomcat: #服务名唯一
container_name: tomcat01 #相当于run的 --name
image: tomcat:8.0-jre8 #创建当前这个服务使用镜像是谁 相当于run的image
ports: #数组 相当于run的-p
- 8080:8080 #映射端口
volumes: #完成宿主机与容器中目录数据卷共享 相当于run的-v
# - /root/apps:/usr/local/tomcat/webapps #使用自定义路径映射 两种方式
- tomcatwebapps:/usr/local/tomcat/webapps # 这个tomcatwebapps需要在声明一下
networks: #代表当前服务使用哪个网络桥 相当于run --network
- hello


mysql:
image: mysql:5.7.32
container_name: mysql #服务器启动之后容器名称, 相当于docker run之后的--name
ports:
- "3307:3306"
volumes:
- mysqldata:/var/lib/mysql
- mysqlconf:/etc/mysql
environment: #下面env_file两个选一个使用,推荐使用下面的这样不容易暴露密码
- MYSQL_ROOT_PASSWORD=root
env_file: #用来将environment环境中配置放入指定配置文件中
- ./mysql.env #需要创建mysql.env文件并将MYSQL_ROOT_PASSWORD=root放进去,上面的就不要写了
networks:
- hello


volumes: #声明上面服务所使用的自动创建的卷名
tomcatwebapps: #声明指令的卷名 compose自动创建该卷名但是会在之前加入项目名
external: #使用自定义卷名
true #true代表确定使用指定卷名
mysqldata:
mysqlconf:


# 可配置多个服务
tomcat: #服务名唯一
image: tomcat:8.0-jre8 #创建当前这个服务使用镜像是谁
ports: #数组
- 8081:8081 #映射端口
3.运行docker-compose
docker-compose up #启动这个项目的所有服务 必须保证运行命令的目录存在docker-compose.yml

常用指令


up指令
作用:用来启动所有docker-compose服务
选项: -d 后台启动所有服务
down指令
作用:用来关闭所有docker-compose服务
exec指令
作用:进入容器
docker-compose exec redis(docker-compose.yml中声明服务id) bash
ps 指令
作用:用来展示当前docker-compose运行的所有容器
docker-compose ps
restart 指令
作用:用来重启项目中每个服务如果不写服务id 默认重启所有服务
docker-compose restart [服务id]
rm指令
作用:用来删除项目服务
docker-compose rm -fv [服务id] 注意:谨慎操作 -v删除服务的数据卷
start指令
启动服务 docker-compose start [服务id]
stop指令
关闭服务 docker-compose stop [服务id]
top指令
用来查看compose容器内运行的进程
docker-compose top
logs指令
展示某些容器的日志
docker-compose logs [服务id]



-------------------------------------------

个性签名:代码过万,键盘敲烂!!!

如果觉得这篇文章对你有小小的帮助的话,记得“推荐”哦,博主在此感谢!