Docker Compose 基本使用 之实战【Tomcat+Mysql】

时间:2024-11-15 20:24:07

上一篇文章【Linux 安装卸载Docker-compose】说到Docker-compose就是将你要执行的操作写成指令的方式放在yml(类似于txt)的文本文件中,然后再执行该文件,解析其中的指令来达到你想要实现的操作.

Compose 命令说明

#命令对象与格式

对于 Compose 来说,大部分命令的对象既可以是项目本身,也可以指定为项目中的服务或者容器。如果没有特别的说明,命令对象将是项目,这意味着项目中所有的服务都会受到命令影响

执行 docker-compose [COMMAND] --help 或者 docker-compose help [COMMAND] 可以查看具体某个命令的使用格式。

docker-compose 命令的基本的使用格式是

docker-compose [-f=<arg>...] [options] [COMMAND] [ARGS...]

命令选项

  • -f, --file FILE 指定使用的 Compose 模板文件,默认为 ,可以多次指定。
  • -p, --project-name NAME 指定项目名称,默认将使用所在目录名称作为项目名。
  • --x-networking 使用 Docker 的可拔插网络后端特性
  • --x-network-driver DRIVER 指定网络后端的驱动,默认为 bridge
  • --verbose 输出更多调试信息。
  • -v, --version 打印版本并退出

Compose 常用命令

前台运行

docker-compose up

后台运行

docker-compose up -d

启动

docker-compose start

停止

docker-compose stop

停止并移除容器

docker-compose down

 上面介绍了一下Docker-compose的基本常用命令,其余的请自行查阅.

Compose 模板文件

模板文件是使用 Compose 的核心,涉及到的指令关键字也比较多。但大家不用担心,这里面大部分指令跟 docker run 相关参数的含义都是类似的。

默认的模板文件名称为 ,格式为 YAML 格式.

模板文件指令暂时介绍常用的,其余的请自行查阅

(1) build: 指定 Dockerfile 所在文件夹的路径(可以是绝对路径,或者相对 文件的径). Compose 将会利用它自动构建这个镜像,然后使用这个镜像

(2) ports: 暴露端口信息。使用宿主端口:容器端口 (HOST:CONTAINER) 格式,或者仅仅指定容器的端口(宿主将会随机选择端口)都可以

(3) image:  指定为镜像名称或镜像 ID。如果镜像在本地不存在,Compose 将会尝试拉取这个镜像

(4) volumes:   数据卷所挂载路径设置。可以设置宿主机路径 (HOST:CONTAINER) 或加*问模式 (HOST:CONTAINER:ro)。该指令中路径支持相对路径

(5) restart:   指定容器退出后的重启策略为始终重启。该命令对保持服务始终运行十分有效,在生产环境中推荐配置为 always 或者 unless-stopped

(6) container_name: 指定容器名称。默认将会使用 项目名称_服务名称_序号 这样的格式

(7) command: 覆盖容器启动后默认执行的命令

(8) environment: 设置环境变量。你可以使用数组或字典两种格式。只给定名称的变量会自动获取运行 Compose 主机上对应变量的值,可以用来防止泄露不必要的数据.。如果变量名称或者值中用到 true|false,yes|no 等表达 布尔 含义的词汇,最好放到引号里,避免 YAML 自动解析某些内容为对应的布尔语义

4. 使用Docker Compose 实战一下【Tomcat + Mysql

(基于root权限)首先选择一个目录创建文件  ( 例子测试目录为/usr/local/docker/ )

  1. $ cd /usr/local/docker //进入文件目录
  2. $ mkdir //创建文件
  3. $ vi //打开文件写入要操作的指令

保存文件退出,文件指令查阅上方基本指令介绍(上面文件指令加入了软连接[volumes])

在目录下执行命令 (一定要在文件目录下执行命令)

$ docker-compose up     // 可以加-d参数 表示守护态(后台)运行

等待执行文件指令结束, 访问tomcat以及mysql即可 (访问地址为虚拟机 IP:端口号).