Docker虛擬化技術系列之-DockerFile配置

 隨着Docker管理的任務增多,我們需要用Dockerfile進行docker容器管理,這樣可以減輕人工的操作,讓docker管理更加的方便,快捷:

Dockerfile是一個鏡像的完整描述,可以通過Dockerfile來描述構建鏡像的步驟,並自動構建一個容器。

所有的 Dockerfile 命令格式都是:

INSTRUCTION arguments

雖然指令忽略大小寫,但是建議使用大寫。

FROM 命令

FROM <p_w_picpath>

FROM <p_w_picpath>:<tag>

這個設置基本的鏡像,爲後續的命令使用,所以應該作爲Dockerfile的第一條指令。

比如:

FROM centos:v1

如果沒有指定 tag ,則默認tag是latest,如果都沒有則會報錯。

RUN 命令

RUN命令會在上面FROM指定的鏡像裏執行任何命令,然後提交(commit)結果,提交的鏡像會在後面繼續用到。

兩種格式:

RUN <command> (the command is run in ashell - `/bin/sh -c`)

或:

RUN ["executable","param1", "param2" ... ] (exec form)

RUN命令等價於:

docker run p_w_picpath command

docker commit container_id

編寫Dockerfile實戰

根據上面的操作步驟,在docker服務器端創建Dockerfile文件,內容如下:

設置基本的鏡像,後續命令都以這個鏡像爲基礎
FROM centos:v1
# 作者信息
MAINTAINER JFEDU.NET
# RUN命令會在上面指定的鏡像裏執行任何命令
RUN yum install passwd openssl openssh-server-y
RUN echo '123456' | passwd --stdin root
RUN ssh-keygen -q -t rsa -b 2048 -f/etc/ssh/ssh_host_rsa_key -N ''
RUN ssh-keygen -q -t ecdsa -f/etc/ssh/ssh_host_ecdsa_key -N ''
RUN sed -i '/^session\s\+required\s\+pam_loginuid.so/s/^/#/'/etc/pam.d/sshd
RUN mkdir -p /root/.ssh && chownroot.root /root && chmod 700 /root/.ssh
#對外暴露SSH 22端口
EXPOSE 22
# 設定運行鏡像時的默認命令:輸出ip,並以daemon方式啓動sshd
CMD ip addr ls eth0 | awk '{print $2}' | egrep-o '([0-9]+\.){3}[0-9]+';/usr/sbin/sshd -D


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章