[TOC] 1.手動docker鏡像的缺點 2.dockerfile常用指令 3.dockerfile實戰1 3.1.手動製作docker鏡像步驟 3.1.1.啟動容器安裝軟體服務 3.1.2.將安裝好服務的容器commit提交為鏡像 3.1.3.啟動新容器來測試新提交的鏡像 3.2.dockerf ...
目錄
1.手動docker鏡像的缺點
相對於手動製作的docker鏡像,使用dockerfile構建的鏡像有以下優點:
1:dockerfile只有幾kb,便於傳輸
2:使用dockerfile構建出來的鏡像,在運行容器的時候,不用指定容器的初始命令
3:支持更多的自定義操作
2.dockerfile常用指令
dockerfile常用指令:
FROM 這個鏡像的媽媽是誰?(指定基礎鏡像)
MAINTAINER 告訴別人,誰負責養它?(指定維護者信息,可以沒有)
RUN 你想讓它幹啥(在命令前面加上RUN即可)
ADD 給它點創業資金(COPY文件,會自動解壓)
WORKDIR 我是cd,今天剛化了妝(設置當前工作目錄)
VOLUME 給它一個存放行李的地方(設置捲,掛載主機目錄)
EXPOSE 它要打開的門是啥(指定對外的埠)(-P 隨機埠)
CMD 奔跑吧,兄弟!(指定容器啟動後的要乾的事情)(容易被替換)
dockerfile其他指令:
COPY 複製文件
ENV 環境變數
ENTRYPOINT 容器啟動後執行的命令(無法被替換,啟容器的時候指定的命令,會被當成參數)
3.dockerfile實戰1
3.1.手動製作docker鏡像步驟
3.1.1.啟動容器安裝軟體服務
docker run -it -p 1022:22 --name oldboy centos:6.9
######
yum install openssh-server -y
/etc/init.d/sshd start
echo 123456|passwd --stdin root
######
3.1.2.將安裝好服務的容器commit提交為鏡像
docker commit oldboy centos6-ssh:v1
3.1.3.啟動新容器來測試新提交的鏡像
docker run -d -p 2022:22 centos6-ssh:v1 /usr/sbin/sshd -D
3.2.dockerfile製作docker鏡像步驟
3.2.1.編寫dockerfile
vi Dockerfile
FROM centos:6.9
RUN yum install openssh-server -y
RUN /etc/init.d/sshd start
RUN echo 123456|passwd --stdin root
CMD ["/usr/sbin/sshd","-D"]
3.2.2.docker build構建鏡像
docker build -t centos6-ssh:v2 .
3.2.3.啟動新容器來測試新構建的鏡像
docker run -d -p 1322:22 centos6-ssh:v2
4.dockerfile實戰2
4.1.手動製作支持ssh-http雙服務的docker鏡像
4.1.1.啟動容器安裝軟體服務
docker run -it --name oldgirl centos:6.9
yum install httpd -y
yum install openssh-server -y
/etc/init.d/sshd start
echo 123456|passwd --stdin root
###容器啟動腳本
vi /init.sh
#!/bin/bash
/etc/init.d/httpd start
/usr/sbin/sshd -D
4.1.2.將安裝好服務的容器commit提交為鏡像
docker commit oldgirl centos6-ssh-httpd:v1
4.1.3.啟動新容器來測試新提交的鏡像
docker run -d -p 8080:80 -p 1122:22 centos6-ssh-httpd:v1 /bin/bash /init.sh
4.2.dockerfile製作docker鏡像步驟
4.2.1.編寫dockerfile
vi Dockerfile
FROM centos:6.9
RUN yum install openssh-server httpd -y
RUN /etc/init.d/sshd start
RUN echo 123456|passwd --stdin root
ADD init.sh /init.sh
CMD [“/bin/bash",“/init.sh"]
###容器啟動腳本
vi /init.sh
#!/bin/bash
/etc/init.d/httpd start
/usr/sbin/sshd -D
4.2.2.docker build構建鏡像
docker build -t centos6-ssh-httpd:v2
4.2.3.啟動新容器來測試新提交的鏡像
docker run -d -p 8080:80 -p 2122:22 centos6-ssh-httpd:v2