学习docker之后发现构建镜像好轻松,直接去仓库拉取一下就可以了。可是还是有不足,就是如果想要自己搭建项目的话,仓库里面可没有供我们使用的现成的镜像,所以我们就需要自己构建镜像了。docker-compose就这样被安排上了。

docker-compose

docker-compose安装

contos安装

安装方式

可以查看最新版本的安装方式:https://github.com/docker/com...
具体步骤如下:

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

docker-compose使用

Dockerfile指令

1. FROM

格式:FROM <image>或 FROM <image>:<tag>
第一条指令必须为FROM指令,并且,如果在同一个Dockerfile中创建多个镜像时,可以使用多个FROM指令(每个镜像一次)

2. MAINTAINET

格式:MAINTAINET <name>
指定维护者的信息

3. WORKDIR

格式:WORKDIR /path/to/workdir
为后续的 RUN 、 CMD 、 ENTRYPOINT 指令配置工作目录。(可以使用多个 WORKDIR 指令,后续命令如果参数是相对路径, 则会基于之前命令指定的路径)

4. ADD

格式:ADD  <src>  <dest>
复制指定的<src>到容器的<dest>中,<src>可以是Dockerfile所在的目录的一个相对路径;可以是URL,也可以是tar.gz(自动解压)

5. COPY

格式:COPY <src>  <dest>
复制本地主机的 <src> ( 为 Dockerfile 所在目录的相对路径)到容器中的 <dest> (当使用本地目录为源目录时,推荐使用 COPY)

6. EXPOSE

格式:EXPOSE <port>  [ <port> ...]
告诉Docker服务端暴露端口,在容器启动时需要通过 -p 做端口映射

7. VOLUME(一般会在docker-compose.yml里面添加该属性)

格式:VOLUME ["/mnt"] 
创建一个可以从本地主机或其他容器挂载的挂载点,一般用来存放数据库和需要保持的数据等

8. ENTRYPOINT

格式:ENTRYPOINT ["","",""]
配置容器启动后执行的命令,并且不可被 docker run 提供的参数覆盖。(每个 Dockerfile 中只能有一个 ENTRYPOINT ,当指定多个时,只有最后一个起效)

9. RUN

格式:RUN <command> 或 RUN ["", "", ""]
每条指令将在当前镜像基础上执行,并提交为新的镜像。(可以用“”换行)

10. ENTRYPOINT

格式:ENTRYPOINT ["","",""]
配置容器启动后执行的命令,并且不可被 docker run 提供的参数覆盖。(每个 Dockerfile 中只能有一个 ENTRYPOINT ,当指定多个时,只有最后一个起效)

11. CMD

格式:CMD ["","",""]
指定启动容器时执行的命令,每个Dockerfile只能有一条CMD指令,如果指定了多条指令,则最后一条执行。(会被启动时指定的命令覆盖)

Dockerfile编写

这是一个简单的Dockerfile文件,就是用jdk8运行一个springboot的程序。

FROM oracle/openjdk:8
MAINTAINER xiuaiba@163.com
WORKDIR /opt
ADD jdevtemplateboot.jar app.jar
CMD ["java","-jar","app.jar"]

docker-compose.yml 文件的编写

version: '2.0'
services:
  web_test:
    build: .
    ports:
    - "8088:8080"
    volumes:
    - /mnt/logs/void_roi:/apps/void_roi/logs

docker-compose 运行

docker image 创建

docker-compose build --no-cache;

docker image 运行

docker-compose up -d

docker image 停止

docker-compose down

先写这么多,后面会在进行修改的。。。


周兆东
107 声望21 粉丝

一个java小白的成长之路。。。