Dockerfile 是一个文本文件,但包含所构建容器在运行时候的参数、库、资源配置。能够简单理解为咱们现有的镜像,好比Centos/Nginx 但咱们须要构建一个容器的时候,却须要用一些操做将这两个镜像组合在一块儿,好比要构建一个Nginx容器。html
这样是否是一个容器就构建出来了。这个容器是独立运行的一个操做系统。nginx
镜像运行起来就成为了容器。一个镜像能够生成多个容器。这就比如是两种状态。git
# 指定基础镜像信息 FROM centos:centos7 # 维护者信息 MAINTAINER mrc xxx@qq.com # 镜像操做命令 RUN 用来操做 RUN curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo RUN yum -y update RUN yum install -y epel-release RUN yum install -y nginx #RUN echo '<h1>hello world docker</h1>' >> /usr/share/nginx/html/index.html # 容器启动执行命令 CMD /usr/sbin/nginx
一个Dockerfile 文件包含的内容有这四部分。开始就要指定基础镜像信息。以及维护者信息。然后经过RUN 命令执行镜像操做命令,用来操做基础镜像。docker
CMD 指令容许用户指定容器的默认执行的命令。此命令会在容器启动且 docker run 没有指定其余命令时运行。centos
经过刚才的Dockerfile 文件,咱们已经自定义了一个指定的镜像文件。如今用这个镜像构建文件来生成一个咱们自定义的镜像。bash
docker build
命令会根据当前目录Dockerfile 文件以及上下文构建新的镜像。curl
上下文所指的是当前目录或者一个git 仓库地址。构建上下文会遍历子目录递归进行处理。能够经过
.dockerignore
文件忽略上下文目录当中的不须要要的子目录ui
一般在一个新的文件夹下放置Dockerfile 文件进行构建。url
mkdir -p docker cd docker vi Dockerfile ## 加入如下内容 FROM nginx RUN echo '<h1>Hello, Docker!</h1>' > /usr/share/nginx/html/index.html # 开始构建 注意有一个点 -t 表明加入标签 docker build -t test:v1 .
docker run --name docker_test -d -p 8080:80 test:v1
--name
表示运行时候的名称-d
后台运行-p
端口映射 将本机8080端口映射到nginx 80端口访问本机IP+8080端口
要是我想要修改这个容器内的内容呢?固然也有能够交互的命令行
docker exec -it docker_test bash
-i
即便没有链接,也保持STDIN打开-t
分配给伪TTYbash
即命令处理器刷新查看内容的改变
docker diff xxx
### 容器中止 docker container stop name ### 启动已经中止掉的容器 docker container start xxx ### 重启容器 docker container restart xxx
https://www.cnblogs.com/ityouknow/p/8588725.html