什麼是Dockerfile
Dockerfile類似于我們學習過的腳本,将我們在上面學到的docker鏡像,使用自動化的方式實作出來。
Dockerfile的作用
1、找一個鏡像: ubuntu
2、建立一個容器: docker run ubuntu
3、進入容器: docker exec -it 容器 指令
4、操作: 各種應用配置
5、構造新鏡像: docker commit
Dockerfile 使用準則
1、大: 首字母必須大寫D
2、空: 盡量将Dockerfile放在空目錄中。
3、單: 每個容器盡量隻有一個功能。
4、少: 執行的指令越少越好。
Dockerfile 基礎四指令:
基礎鏡像資訊 從哪來?
維護者資訊 我是誰?
鏡像操作指令 怎麼幹?
容器啟動時執行指令 嗨!!!
Dockerfile使用指令:
建構鏡像指令格式:
docker build -t [鏡像名]:[版本号] [Dockerfile所在目錄]
參數詳解:
-t 指定建構後的鏡像資訊
定制dockerfile檔案
建立Dockerfile檔案
# 建構一個基于ubuntu的ssh定制鏡像
\# 基礎鏡像
FROM ubuntu-base
\# 鏡像作者
MAINTAINER President.Wang [email protected]
\# 執行指令
\# 增加軟體源
ADD sources.list /etc/apt/sources.list
\# 安裝 ssh 服務
RUN apt-get update && apt-get install -y openssh-server curl vim net-tools && mkdir -p /var/run/sshd && mkdir -p /root/.ssh && sed -i "s/.*pam_loginuid.so/#&/" /etc/pam.d/sshd && apt-get autoclean && apt-get clean && apt-get autoremove
\# 複制配置檔案到相應位置,并賦予腳本可執行權限
ADD authorized_keys /root/.ssh/authorized_keys
\# 對外端口
EXPOSE 22
\# 啟動ssh
ENTRYPOINT ["/usr/sbin/sshd","-D"]
建構鏡像
建構鏡像
docker build -t ubuntu-ssh .
效果檢視
使用新鏡像啟動一個容器,檢視效果
docker run -d -p 10086:22 ubuntu-ssh
容器檢查
docker ps
dockerfile指令詳解:
導入的鏡像源
FROM ubuntu
指定該檔案的維護者資訊
MAINTAINER xxx
安裝軟體,并進行安裝判斷
添加檔案,添加壓縮檔案會解壓檔案
ADD a.txt /home
添加目錄下檔案
ADD data /home
建立鏡像時,執行建立目錄
RUN mkdir /home/add
添加壓縮檔案,不會解壓
COPY data.tar /home
添加壓縮檔案,會解壓檔案
ADD data.tar /home/add
運作容器直接跳轉到etc目錄下
WORKDIR /etc
當運作新的鏡像資源時,執行指令/指令
ENTRYPOINT echo hello docker
操作多個鏡像資源
單機版:Docker compose
檔案類型:ymal格式
啟動(需切換到執行檔案目錄下):docker-compose up -d
關閉:docker stop 服務名
檢視狀态:docker-compose ps -a
删除:docker-compose rm 服務名