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

posted @ 2020-10-29 21:19  小白典  阅读(5751)  评论(0编辑  收藏  举报