91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

為什么需要自定義一個基礎鏡像?

發布時間:2020-07-12 04:32:01 來源:網絡 閱讀:217 作者:yunweilu 欄目:系統運維

為什么需要自定義一個基礎鏡像?

開始之前

為什么需要自定義一個PHP基礎鏡像?

對于使用php (python)等開發的項目,由于是解釋型語言并不需要編譯代碼這個步驟(go或者java將依賴打包到可執行程序或包中),但是往往還需要安裝一些依賴的庫或者第三方模塊。

在項目實踐中一般會先在PHP官方鏡像之上,添加項目一些必用擴展模塊,例如連接 mysql數據庫的 mysqlnd 模塊,或者連接 redismemcachemongodb 等常用的php擴展模塊,以項目實際需求為準。

基礎鏡像作用是為項目鏡像提供支持,準備好php基礎鏡像之后,以此鏡像為基礎并添加項目代碼,完成項目鏡像構建工作,除重大安全更新、添加新的擴展模塊之外,基礎鏡像并不會經常更新和調整

舉個栗子

這里使用一個示例來描述php基礎鏡像,環境及需求如下:

項目基于 `php5 + mysql` 開發。
項目使用 `php-fpm` 運行項目代碼。
項目使用 `nginx` 反向代理 php-fpm 并提供'靜態資源'服務。
項目需要 `mysqlnd、redis、memcache` 等php擴展模塊。

默認情況下 docker 只運行一個進程(docker推崇的理念),但是項目需要兩個服務(php-fpm、nginx),所以需要第三方的進程管理軟件,在docker中較流行的方案是使用 supervisor 軟件管理多個進程

這篇文章重點介紹如何實現一個php基礎鏡像,將在下一篇文章中介紹 如何使用 supervisor 管理多個進程。

操作步驟
  1. 基于以上的需求,設計 Dockerfile 文件。
cat base/php/5.6/Dockerfile

# 使用 php:5.6-fpm 官方鏡像
FROM php:5.6-fpm
MAINTAINER dongnan #<@微信公眾號:運維錄>

# env
ENV TZ="Asia/Shanghai" \
    LANG="en_US.UTF-8"

# apt
COPY conf/sources.list /etc/apt/sources.list
RUN apt-get update && apt-get install -y \
    supervisor nginx \
    libfreetype6-dev \
    libjpeg62-turbo-dev \
    libmcrypt-dev \
    libpng-dev \
    libmagickwand-dev \
    libmemcached-dev \
    bzip2 \
    && apt-get clean && rm -r /var/lib/apt/lists/*

# ext
RUN docker-php-ext-install bcmath \
    dba \
    exif \
    mysqli \
    pdo_mysql \
    sysvsem \
    sysvshm \
    bz2 \
    zip \
    mysql

# gd
RUN docker-php-ext-install -j$(nproc) iconv mcrypt \
    && docker-php-ext-configure gd \
    --with-freetype-dir=/usr/include/ \
    --with-jpeg-dir=/usr/include/ \
    && docker-php-ext-install -j$(nproc) gd 

# pecl
RUN pecl install imagick \
    memcached-2.2.0 \
    redis-4.3.0 \
    && docker-php-ext-enable imagick \
    && docker-php-ext-enable memcached \ 
    && docker-php-ext-enable redis
  1. 構建鏡像
cd base/php/5.6/
docker build -t demo-base:0.0.1 .

Sending build context to Docker daemon 3.0 kb
# 省略....
Successfully built cd34135ed904

不明白Dockerfile 文件參數含義,或者 build 命令使用方法,請參考這篇文章《如何使用 Dockerfile自定義鏡像? 》

  1. 驗證鏡像
docker images --format '{{.Repository}} {{.Size}}'

demo-base 723MB

可以使用這個php基礎鏡像創建一個容器,不過這個容器(鏡像)雖然已經安裝了nginx 但是并不會運行,目前只有默認的php-fpm在運行,將在下一篇: 《使用supervisor管理Docker容器中多個進程》解決這個問題,敬請期待 公眾號每周四 docker專題更新文章。

小結

最后來總結下文章中的知識點

  • 基礎鏡像作用是為項目鏡像提供支持,并在基礎鏡像之上添加項目代碼,完成項目鏡像構建工作。
  • 除重大安全更新、添加新的擴展模塊之外,基礎鏡像不會經常更新。
  • 默認情況下 docker只運行一個進程,需要supervisor進程管理軟件管理多個進程。

參考文章

doker&k8s Qun [703906133]

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

安多县| 汉源县| 武义县| 西乡县| 丰台区| 珠海市| 凌源市| 文水县| 神木县| 衡东县| 天长市| 卓资县| 理塘县| 和顺县| 鹤庆县| 淮滨县| 布尔津县| 法库县| 二连浩特市| 安宁市| 家居| 莆田市| 阿拉善左旗| 阜康市| 离岛区| 常州市| 驻马店市| 鹤山市| 长沙市| 普宁市| 红原县| 樟树市| 黎川县| 扎鲁特旗| 南木林县| 个旧市| 舞阳县| 苏州市| 同心县| 驻马店市| 涿鹿县|