Docker 實踐:使用 Dockerfile 構建本身的 centos

Dockerfile 是用來構建 docker 鏡像的描述文件。docker

  • 每一個指令必須都是大寫字母;
  • 指令從上到下順序執行;
  • 使用 # 號做爲註釋;
  • 每一個指令多會建立一個新的層並提交;

image.png

編寫 Dockerfile 文件

vim Dockerfile
# 鏡像使用的基礎鏡像
FROM centos

# 指明鏡像的做者
MAINTAINER wu<wuyuanhui@qq.com>

# 構建時設置環境變量
ENV MYPATH /usr/local

# 鏡像的工做目錄,啓動容器後進入的目錄
WORKDIR $MYPATH

# 鏡像構建時須要運行的命令
RUN yum -y install vim
RUN yum -y install net-tools

# 添加壓縮包,會自動解壓
ADD apache-tomcat-xxx.tar.gz /usr/local/

# 相似ADD指令,將文件拷貝到鏡像中
COPY readme.txt /usr/local/readme.txt

# 指定對外的暴露端口
EXPOSE 80

# 匿名掛載數據卷
VOLUME ["volume01","volume02"]

# 容器啓動時須要運行的命令,多個CMD命令只有最後一個會生效
# CMD中的命令能夠被docker run的命令徹底替代
CMD echo $MYPATH
CMD ["ls","-a"]

# 容器啓動時須要運行的命令,能夠被用於追加命令
# ENTRYPOINT ["ls","-a"]

# 輸出一行內容
CMD echo "---END---"

# 進入控制檯
CMD /bin/bash

使用 Dockerfile 構建鏡像

# 構建鏡像
# -f 指定使用的Dockerfile文件,-t 指定生成鏡像的版本,. 鏡像放在當前目錄
docker build -f /home/Dockerfile -t my_centos:1.0 .

# 查看全部鏡像
docker images

# 運行容器,默認會去找最新版,因此須要指定版本
docker run -it --name my_centos01 my_centos:1.0 /bin/bash

pwd
ifconfig
vim test.txt

# 查看運行容器時自動掛載的數據卷 volume01, volume02
ls -l
exit
# 查看鏡像構建歷史
docker history image_id

# 查看容器詳情和數據卷掛載信息
docker inspect my_centos01
相關文章
相關標籤/搜索