Docker 镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像不包含任何动态数据,其内容在构建之后也不会被改变。
1、文件格式
# 1、第一行必须指定 基础镜像信息
FROM ubuntu
# 2、维护者信息
MAINTAINER docker_user docker_user@email.com
# 3、镜像操作指令,没执行一个指令,镜像添加一层
RUN echo "deb http://archive.ubuntu.com/ubuntu/ raring main universe" >> /etc/apt/sources.list
RUN apt-get update && apt-get install -y nginx
RUN echo "\ndaemon off;" >> /etc/nginx/nginx.conf
# 4、容器启动执行指令
CMD /usr/sbin/nginx
2、构建镜像
// 将当前目录做为构建上下文
docker build .
// 指定路径
docker build -f /path/Dockerfile .
// 镜像标签,通过-t参数指定构建成镜像的仓库、标签
docker build -t nginx/v3 .
3、简单实例
// 创建Dockerfile文本文件
mkdir mynginx
cd mynginx
vi Dockerfile
// 编辑Dockerfile文本文件
FROM nginx
RUN echo '<h1>Hello, Docker!</h1>' > /usr/share/nginx/html/index.html
// 在 Dockerfile 文件,构建镜像
docker build -t nginx:v1 .
// 运行镜像创建容器
docker run --name docker_nginx_v1 -d -p 80:80 nginx:v1
// 端口映射
// docker run -p ip:hostPort:containerPort image_name
// 使用-p参数会分配宿主机的端口映射到虚拟机。
// IP表示主机的IP地址。
// hostPort表示宿主机的端口。
// containerPort表示虚拟机的端口。
启动浏览器可以看到信息
修改容器内容
# docker exec -it docker_nginx_v1 bash
root@8fbd0eba7732:/# echo '<h1>Hello , Docker Siwanper</h1>' > /usr/share/nginx/html/index.html
root@8fbd0eba7732:/# exit
exit