Docker-compose安装及使用教程
docker-compose安装
方法一:
首先执行pip -V确认是否已安装pip,若提示“未找到命令…”则根据以下步骤执行,若显示pip版本则直接执行步骤2安装即可!
1、安装pip :wget https://bootstrap.pypa.io/get-pip.py && python3 get-pip.py
2、安装docker-compose:pip install docker-compose
等待安装完成后即可执行docker-compose version查看版本
方法二:
1、去github搜索docker-compose,选择版本下载
https://github.com/docker/compose/releases
2、将下载好的文件传入linux系统中,并重命名未docker-compose
mv docker-compose-Linux-…… docker-compose
3、给予docker-compose文件可执行权限
chmod u+x docker-compose
4、为方便后期操作,配置环境变量
将docker-compose文件移至/usr/local/bin,修改/etc/profile文件,将/usr/local/bin添加至PATH中
mv docker-compose /usr/local/bin
vim /etc/profile
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin:/usr/local/bin
5、重新加载profile文件配置
source /etc/profile
6、验证docker-compose,查看其版本
docker-compose version
编写docker-compose.yml文件
yml文件格式要求非常严格,一定要细心,执行过程中若有报错,可根据报错信息找到并修改文件中的错误
yml文件以键值对的形式来配置信息【key: value】value前有个空格
多个配置信息以换行+两个空格的缩进方式来区分,回车换行后点两下空格键,不要使用Tab键
在docker-compose文件中不要使用制表符
# 示例,使用是请删除注释及所有注释前的空格:
version: '3.7' #撰写文档格式版本号,若不清楚请百度Docker Engine与docker-compose version 之间的关系,选择对应版本,版本号不对会报错
service:
mysql: #项目名称,可以自定义
restart: always #开机自启,表示docker启动则此容器跟着启动
images: daocloud.io/library/mysql:8.0.2 #指定镜像路径
container_name: mysql #指定容器的名称
ports: #配置端口
- 3398:3306 #指定端口的映射,-后有个空格
environment: #配置环境
MYSQL_ROOT_PASSWORD: root #指定Mysql的root用户登录密码
TZ: Asia/Shanghai #指定时区
volumes: #配置数据卷
- /opt/docker_mysql_tomcat/mysql_data:/var/lib/mysql #映射数据卷
# ************下面配置信息形式同上,不再做说明**********
tomcat:
restart: always
image: daocloud.io/library/tomcat:8.5.15-jre8
container_name: tomcat
ports:
- 8083:8080
environment:
TZ: Asia/Shanghai
volumes:
- /opt/docker_mysql_tomcat/tomcat_webapps:/usr/local/tomcat/webapps
- /opt/docker_mysql_tomcat/tomcat_logs:/usr/local/tomcat/logs
以上示例中根据数据卷映射条件,需要先在Linux系统中/opt/目录下创建docker_mysql_tomcat目录,才可正常启动容器
docker-compose.yml文件编写完成后传入linux系统中,或者直接在linux系统中创建并编辑文件后即可使用docker-compose相关命令对容器进行操作
docker-compose常用命令
在使用docker-compose命令时,默认在当前目录下找docker-compose.yml文件
启动由docker-compose.yml管理的容器:docker-compose up -d
查看由docker-compose管理的容器:docker-compose ps
关闭并删除由docker-compose管理的容器:docker-compose down
启动/停止/重启已存在的且由docker-compose管理的容器:docker-compose start/stop/restart
挂起/恢复由docker-compose管理的容器:docker-compose pause/unpause
查看由docker-compose管理的所有容器运行进程:docker-compose -f docker-compose.yml top
查看由docker-compose管理的指定某一个容器运行进程:docker-compose -f docker-compose.yml top mysql
查看滚动日志:docker-compose logs -f
示例中已将日志映射到/usr/local/tomcat/logs目录中,可直接去文件内查看,工作中主要以此种方式查看日志
示例中容器启动后通过Navicat测试可成功连接
docker-compose配合Dockerfile部署项目
编写docker-compose.yml文件
version: '3.7'
services:
test1: #项目名称
restart: always #开机自启
build: #构建自定义镜像
context: ../ #指定Dockerfile文件路径,../指Dockerfile文件在docker-compose.yml文件的上一层
dockerfile: Dockerfile #指定Dockerfile文件名
image: test1:1.0 #通过上面build构建的镜像名称
container_name: test1 #容器名称
ports:
- 8082:8080 #端口映射
environment:
TZ: Asia/Shanghai #指定时区
编写Dockerfile文件(关于Dockerfile文件编写,请查看博客:https://blog.csdn.net/Q0717168/article/details/109299009)
from daocloud.io/library/tomcat:9.0.36-jdk8-corretto
copy test1.war /usr/local/tomcat/webapps/
maintainer duanyadian 7852***076@163.com
在linux系统中创建docker_test目录,进入该目录,传入test1.war包和Dockerfile文件,然后在docker_test目录下创建docker-compose目录,进入该目录,导入docker-compose.yml文件,这三个文件的关系要与docker-compose.yml中context路径一致,可以在window上整理好后通过ftp传入linux系统中
启动该项目:docker-compose up -d
通过浏览器查看项目已成功启动
通过命令也可以看到项目已经是运行状态
你可能已经注意到上面的黄色警告
WARNING: Image for service test1 was built because it did not already exist. To rebuild this image you must use `docker-compose build` or `docker-compose up --build`.
该警告是提示镜像已经构建,它已经不存在了。如果需要重建,必须使用docker-compose build或者docker-compose up --build进行重建。也就是说再次启动的时候它不会根据Dockerfile文件进行构建了,而是根据已经构建好的镜像再次重建。
docker-compose up -d 命令可以直接启动基于docker-compose.yml及Dockerfile文件构建的自定义镜像;如果自定义镜像不存在,则会帮助我们构建自定义镜像,如果自定义镜像已存在,则会直接运行自定义镜像
重新构建容器:docker-compose build