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