什么是Dockerfile
Dockerfile类似于我们学习过的脚本,将我们在上面学到的docker镜像,使用自动化的方式实现出来。
Dockerfile的作用
1、找一个镜像: ubuntu
2、创建一个容器: docker run ubuntu
3、进入容器: docker exec -it 容器 命令
4、操作: 各种应用配置
5、构造新镜像: docker commit
Dockerfile 使用准则
1、大: 首字母必须大写D
2、空: 尽量将Dockerfile放在空目录中。
3、单: 每个容器尽量只有一个功能。
4、少: 执行的命令越少越好。
Dockerfile 基础四指令:
基础镜像信息 从哪来?
维护者信息 我是谁?
镜像操作指令 怎么干?
容器启动时执行指令 嗨!!!
Dockerfile使用命令:
构建镜像命令格式:
docker build -t [镜像名]:[版本号] [Dockerfile所在目录]
参数详解:
-t 指定构建后的镜像信息
定制dockerfile文件
创建Dockerfile文件
# 构建一个基于ubuntu的ssh定制镜像
\# 基础镜像
FROM ubuntu-base
\# 镜像作者
MAINTAINER President.Wang 000000@qq.com
\# 执行命令
\# 增加软件源
ADD sources.list /etc/apt/sources.list
\# 安装 ssh 服务
RUN apt-get update && apt-get install -y openssh-server curl vim net-tools && mkdir -p /var/run/sshd && mkdir -p /root/.ssh && sed -i "s/.*pam_loginuid.so/#&/" /etc/pam.d/sshd && apt-get autoclean && apt-get clean && apt-get autoremove
\# 复制配置文件到相应位置,并赋予脚本可执行权限
ADD authorized_keys /root/.ssh/authorized_keys
\# 对外端口
EXPOSE 22
\# 启动ssh
ENTRYPOINT ["/usr/sbin/sshd","-D"]
构建镜像
构建镜像
docker build -t ubuntu-ssh .
效果查看
使用新镜像启动一个容器,查看效果
docker run -d -p 10086:22 ubuntu-ssh
容器检查
docker ps
dockerfile命令详解:
导入的镜像源
FROM ubuntu
指定该文件的维护者信息
MAINTAINER xxx
安装软件,并进行安装判断
RUN apt-get update && apt-get install redis-server -y # 如果命令中需要用户输入判断则使用-y来确定继续执行
添加文件,添加压缩文件会解压文件
ADD a.txt /home
添加目录下文件
ADD data /home
创建镜像时,执行创建目录
RUN mkdir /home/add
添加压缩文件,不会解压
COPY data.tar /home
添加压缩文件,会解压文件
ADD data.tar /home/add
运行容器直接跳转到etc目录下
WORKDIR /etc
当运行新的镜像资源时,执行命令/指令
ENTRYPOINT echo hello docker
操作多个镜像资源
单机版:Docker compose
文件类型:ymal格式
启动(需切换到执行文件目录下):docker-compose up -d
关闭:docker stop 服务名
查看状态:docker-compose ps -a
删除:docker-compose rm 服务名