1. 程式人生 > >使用Dockerfile定製docker映象

使用Dockerfile定製docker映象

Docker Store上已經有很多官方的映象我們可以直接使用,但是有時候我們的環境和映象會有些許差異,在pull之後還需要做一些變更,如果是團隊開發那操作起來就略顯繁瑣,如果能實現映象的定製那就很方便了。

定製映象有兩種方式一種是從容器commit生成映象,但是這種操作生成的映象體積會比較大,很多無用的操作都會打包到映象裡面,下面介紹使用Dockerfile來定製映象,以php映象為例,假設我們需要定製mysqli pdo redis等擴充套件,那可以在空白目錄下建立一個Dockerfile檔案

vi Dockerfile

然後輸入如下內容

FROM php:7.3-fpm
RUN docker-php-ext-install pdo pdo_mysql mysqli \
&& pecl install redis-4.2.0 && docker-php-ext-enable redis

解釋一下

FROM表示使用某個基礎映象,這裡我們使用php:7.3-fpm
RUN 表示執行某個指令,其實就是安裝對應擴充套件的指令,和我們執行映象之後在容器內安裝擴充套件是一樣的,當然還有其他很多指令COPY ADD ...等等

接下來需要構建映象可以在當前目錄下執行

docker build -t myphp:latest .

這樣就構建了一個myphp:latest的映象,可以推送到共有或者私有映象倉庫提供給團隊成員使用

下面在舉一個nginx的例子,假設我們需要自己定義nginx的配置檔案可以編輯好nginx的配置檔案然後在Dockerfile中設定COPY指令拷貝到映象中去,下面給出Dockerfile的內容

FROM nginx:latest
COPY default.conf /etc/nginx/conf.d/default.conf
COPY index.php /usr/share/nginx/html/index.php

這樣就可以使用構建映象的命令構建映象,之後再run產生的容器中的配置檔案就是定製後的映象檔案