docker镜像的制作
FROM
1
2导入基本镜像
格式为 FROM imagemaintainer
1
2指定维修人员等信息
格式为 MAINTAINER user_name user_emailRUN
1
格式为 RUN command 或 RUN [“EXECUTABLE”,”PARAM1”,”PARAM2”…..], 前者在 shell 终端中运行命令,/bin/sh -c command, 例如:/bin/sh -c “echo hello”;后者使用 exec 执行,指定其他运行终端使用 RUN [“/bin/bash”,”-c”,”echo hello”]
CMD
1
2
3
4
5CMD 用于指定容器启动时执行的命令,每个 Dockerfile 只能有一个 CMD 命令,多个 CMD 命令只执行最后一个。若容器启动时指定了运行的命令,则会覆盖掉 CMD 中指定的命令。支持三种格式:
CMD [“executable”,”param1”,”param2”],使用 exec 执行,这是推荐的方式。
CMD command param1 param2 在 /bin/sh 中执行。
CMD [“param1”,”param2”] 提供给 ENTERYPOINT 的默认参数。EXPOSE
1
暴露某个端口
ENV
1
指定环境变量
ADD
1
赋值本地的目录到容器的某个目录,如果是tar文件则会自动解压,ADD . /desc
COPY
1
与ADD不同的是COPY复制的不是目录而是文件
WORKDIR
1
指定工作目录,为后续的 RUN CMD ENTRYPOINT 指定配置工作目录
构建容器
docker build -t composeapp .
-t 指定容器的标签,.表示Dockerfile所在目录
docker-compose 使用案例
首先创建一个工作目录吧
这里是composeapp
在改目录中编写所需要的文件
首先是Dockerfile
1 | #指定基镜像为python2.7 |
这里以python27作为基础镜像,
因为需要使用flask和redis包,这里得去安装,直接用requirements.txt
1 | flask |
最后就是app.py,
1 | #导入Flask和Redis模块 |
最后docker-compose build -t composeapp .构建镜像
docker-compose配置文件编写
docker-compose.yml
1 | #web服务 |
最后docker-compose up
效果
1 | root@localhost composeapp]# curl 127.0.0.1:2345 |
关于docker-compose常见参数
-d
1 | 守护进程方式启动服务 |
1 | #查看web容器中12345端口映射到本地情况 |
查看容器的日志信息
1 | docker-compose logs web |
停止服务
1 | docker-compose stop |
查看服务运行情况
1 | docker-compose ps |
重启某个服务
1 | docker-compose restart web |
kill服务
1 | docker-compose kill //终止所有服务 |
删除容器
1 | docker-compose rm -rf |
与容器交互,这个与docker使用类似
1 | docker-compose exec -it web /bin/bash |