学习docker以后发现构建镜像好轻松,直接去仓库拉取一下就能够了。但是仍是有不足,就是若是想要本身搭建项目的话,仓库里面可没有供咱们使用的现成的镜像,因此咱们就须要本身构建镜像了。docker-compose就这样被安排上了。
能够查看最新版本的安装方式:https://github.com/docker/com...
具体步骤以下:java
1.sudo curl -L https://github.com/docker/compose/releases/download/1.18.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose 2.sudo chmod +x /usr/local/bin/docker-compose 给docker-compose执行权限 3.docker-compose --version 测试安装是否成功,成功的话打印从出docker-compose的版本信息
sudo rm /usr/local/bin/docker-compose
格式:FROM <image>或 FROM <image>:<tag>
第一条指令必须为FROM指令,而且,若是在同一个Dockerfile中建立多个镜像时,可使用多个FROM指令(每一个镜像一次)git
格式:MAINTAINET <name>
指定维护者的信息github
格式:WORKDIR /path/to/workdir
为后续的 RUN 、 CMD 、 ENTRYPOINT 指令配置工做目录。(可使用多个 WORKDIR 指令,后续命令若是参数是相对路径, 则会基于以前命令指定的路径)web
格式:ADD <src> <dest>
复制指定的<src>到容器的<dest>中,<src>能够是Dockerfile所在的目录的一个相对路径;能够是URL,也能够是tar.gz(自动解压)spring
格式:COPY <src> <dest>
复制本地主机的 <src> ( 为 Dockerfile 所在目录的相对路径)到容器中的 <dest> (当使用本地目录为源目录时,推荐使用 COPY)docker
格式:EXPOSE <port> [ <port> ...]
告诉Docker服务端暴露端口,在容器启动时须要经过 -p 作端口映射数据库
格式:VOLUME ["/mnt"]
建立一个能够从本地主机或其余容器挂载的挂载点,通常用来存放数据库和须要保持的数据等springboot
格式:ENTRYPOINT ["","",""]
配置容器启动后执行的命令,而且不可被 docker run 提供的参数覆盖。(每一个 Dockerfile 中只能有一个 ENTRYPOINT ,当指定多个时,只有最后一个起效)oracle
格式:RUN <command> 或 RUN ["", "", ""]
每条指令将在当前镜像基础上执行,并提交为新的镜像。(能够用“”换行)app
格式:ENTRYPOINT ["","",""]
配置容器启动后执行的命令,而且不可被 docker run 提供的参数覆盖。(每一个 Dockerfile 中只能有一个 ENTRYPOINT ,当指定多个时,只有最后一个起效)
格式:CMD ["","",""]
指定启动容器时执行的命令,每一个Dockerfile只能有一条CMD指令,若是指定了多条指令,则最后一条执行。(会被启动时指定的命令覆盖)
这是一个简单的Dockerfile文件,就是用jdk8运行一个springboot的程序。
FROM oracle/openjdk:8 MAINTAINER xiuaiba@163.com WORKDIR /opt ADD jdevtemplateboot.jar app.jar CMD ["java","-jar","app.jar"]
version: '2.0' services: web_test: build: . ports: - "8088:8080" volumes: - /mnt/logs/void_roi:/apps/void_roi/logs
docker-compose build --no-cache;
docker-compose up -d
docker-compose down
先写这么多,后面会在进行修改的。。。