学习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
先写这么多,后面会在进行修改的。。。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。