欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Docker-compose安装及使用教程

程序员文章站 2022-03-12 09:53:54
...

docker-compose安装

方法一:
首先执行pip -V确认是否已安装pip,若提示“未找到命令…”则根据以下步骤执行,若显示pip版本则直接执行步骤2安装即可!
1、安装pip :wget https://bootstrap.pypa.io/get-pip.py && python3 get-pip.pyDocker-compose安装及使用教程

2、安装docker-compose:pip install docker-compose

Docker-compose安装及使用教程

等待安装完成后即可执行docker-compose version查看版本

Docker-compose安装及使用教程

方法二:
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 之间的关系,选择对应版本,版本号不对会报错
services:
  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
    images: 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 -dDocker-compose安装及使用教程

查看由docker-compose管理的容器:docker-compose psDocker-compose安装及使用教程

关闭并删除由docker-compose管理的容器:docker-compose downDocker-compose安装及使用教程

启动/停止/重启已存在的且由docker-compose管理的容器:docker-compose start/stop/restartDocker-compose安装及使用教程

挂起/恢复由docker-compose管理的容器:docker-compose pause/unpauseDocker-compose安装及使用教程

查看由docker-compose管理的所有容器运行进程:docker-compose -f docker-compose.yml topDocker-compose安装及使用教程

查看由docker-compose管理的指定某一个容器运行进程:docker-compose -f docker-compose.yml top mysqlDocker-compose安装及使用教程

查看滚动日志:docker-compose logs -f
示例中已将日志映射到/usr/local/tomcat/logs目录中,可直接去文件内查看,工作中主要以此种方式查看日志Docker-compose安装及使用教程

示例中容器启动后通过Navicat测试可成功连接

Docker-compose安装及使用教程

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***aaa@qq.com

在linux系统中创建docker_test目录,进入该目录,传入test1.war包和Dockerfile文件,然后在docker_test目录下创建docker-compose目录,进入该目录,导入docker-compose.yml文件,这三个文件的关系要与docker-compose.yml中context路径一致,可以在window上整理好后通过ftp传入linux系统中

Docker-compose安装及使用教程Docker-compose安装及使用教程

启动该项目:docker-compose up -dDocker-compose安装及使用教程

通过浏览器查看项目已成功启动

Docker-compose安装及使用教程

通过命令也可以看到项目已经是运行状态Docker-compose安装及使用教程

你可能已经注意到上面的黄色警告
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

Docker-compose安装及使用教程