Docker是現(xiàn)在最火熱的一個容器技術,它可以將應用程序及其依賴包裝在容器中,使得應用程序可以在任何環(huán)境中都能夠快速部署、運行。而容器中的基礎構件被稱為鏡像,鏡像是docker中的基石。如果我們需要在已有的鏡像上構建應用,我們可以通過鏡像疊加的方式進行。
FROM base_image
# 安裝其他軟件或配置
CMD ["executable"]
如上,我們可以選擇已有的鏡像作為我們的“base image”(基礎鏡像),在基礎鏡像的基礎上,可以進行我們需要的操作,比如安裝需要的軟件或者對鏡像進行一些配置等,最后我們需要在鏡像中設置一個執(zhí)行程序(executable)。
FROM ubuntu:latest
# 修改源列表文件
RUN sed -i s@/archive.ubuntu.com/@/mirrors.aliyun.com/@g /etc/apt/sources.list
# 安裝必要軟件
RUN apt-get update \
&& apt-get install -y nginx
# 拷貝 Nginx 配置文件
COPY ./nginx.conf /etc/nginx/nginx.conf
# 暴露端口
EXPOSE 80
# 啟動 Nginx
CMD ["nginx", "-g", "daemon off;"]
上述是一個例子,我們從ubuntu官方最新的鏡像開始,修改源列表文件,安裝必要的軟件,拷貝Nginx配置文件,暴露端口并啟動Nginx。 最后,我們需要構建新的鏡像并驗證。
$ docker build -t my_nginx_image:v1 .
$ docker run -p80:80 -d my_nginx_image:v1
上述動作中,我們用docker build命令構建了一個新的鏡像my_nginx_image:v1,基于我們疊加修改的ubuntu鏡像,最后利用docker run命令運行這個容器。