大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 Docker應用實例

Docker應用實例

更新時間:2021-09-28 10:56:51 來源:動力節點 瀏覽1230次

Docker安裝Nginx

方法一:通過 Dockerfile構建

創建Dockerfile

首先,創建目錄nginx,用于存放后面的相關東西。

runoob@runoob:~$ mkdir -p ~/nginx/www ~/nginx/logs ~/nginx/conf

www目錄將映射為nginx容器配置的虛擬目錄

logs目錄將映射為nginx容器的日志目錄

conf目錄里的配置文件將映射為nginx容器的配置文件

進入創建的nginx目錄,創建Dockerfile

FROM debian:jessie
MAINTAINER NGINX Docker Maintainers "[email protected]"
ENV NGINX_VERSION 1.10.1-1~jessie
RUN apt-key adv --keyserver hkp://pgp.mit.edu:80 --recv-keys 573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62 \
        && echo "deb http://nginx.org/packages/debian/ jessie nginx" >> /etc/apt/sources.list \
        && apt-get update \
        && apt-get install --no-install-recommends --no-install-suggests -y \
                                                ca-certificates \
                                                nginx=${NGINX_VERSION} \
                                                nginx-module-xslt \
                                                nginx-module-geoip \
                                                nginx-module-image-filter \
                                                nginx-module-perl \
                                                nginx-module-njs \
                                                gettext-base \
        && rm -rf /var/lib/apt/lists/*
# forward request and error logs to docker log collector
RUN ln -sf /dev/stdout /var/log/nginx/access.log \
        && ln -sf /dev/stderr /var/log/nginx/error.log
EXPOSE 80 443
CMD ["nginx", "-g", "daemon off;"]

通過Dockerfile創建一個鏡像,替換成你自己的名字

docker build -t nginx .

創建完成后,我們可以在本地的鏡像列表里查找到剛剛創建的鏡像

runoob@runoob:~/nginx$ docker images nginx
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              555bbd91e13c        3 days ago          182.8 MB

方法二:docker pull nginx

查找Docker Hub上的nginx鏡像

runoob@runoob:~/nginx$ docker search nginx
NAME                      DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
nginx                     Official build of Nginx.                        3260      [OK]       
jwilder/nginx-proxy       Automated Nginx reverse proxy for docker c...   674                  [OK]
richarvey/nginx-php-fpm   Container running Nginx + PHP-FPM capable ...   207                  [OK]
million12/nginx-php       Nginx + PHP-FPM 5.5, 5.6, 7.0 (NG), CentOS...   67                   [OK]
maxexcloo/nginx-php       Docker framework container with Nginx and ...   57                   [OK]
webdevops/php-nginx       Nginx with PHP-FPM                              39                   [OK]
h3nrik/nginx-ldap         NGINX web server with LDAP/AD, SSL and pro...   27                   [OK]
bitnami/nginx             Bitnami nginx Docker Image                      19                   [OK]
maxexcloo/nginx           Docker framework container with Nginx inst...   7                    [OK]

這里我們拉取官方的鏡像

runoob@runoob:~/nginx$ docker pull nginx

等待下載完成后,我們就可以在本地鏡像列表里查到REPOSITORY為nginx的鏡像。

使用nginx鏡像

運行容器

runoob@runoob:~/nginx$ docker run -p 80:80 --name mynginx -v $PWD/www:/www -v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf -v $PWD/logs:/wwwlogs  -d nginx  
45c89fab0bf9ad643bc7ab571f3ccd65379b844498f54a7c8a4e7ca1dc3a2c1e
runoob@runoob:~/nginx$

命令說明:

-p 80:80:將容器的80端口映射到主機的80端口

--name mynginx:將容器命名為mynginx

-v $PWD/www:/www:將主機中當前目錄下的www掛載到容器的/www

-v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf:將主機中當前目錄下的nginx.conf掛載到容器的/etc/nginx/nginx.conf

-v $PWD/logs:/wwwlogs:將主機中當前目錄下的logs掛載到容器的/wwwlogs

查看容器啟動情況

runoob@runoob:~/nginx$ docker ps
CONTAINER ID        IMAGE        COMMAND                      PORTS                         NAMES
45c89fab0bf9        nginx        "nginx -g 'daemon off"  ...  0.0.0.0:80->80/tcp, 443/tcp   mynginx
f2fa96138d71        tomcat       "catalina.sh run"       ...  0.0.0.0:81->8080/tcp          tomcat

通過瀏覽器訪問

Docker安裝PHP

方法一:通過 Dockerfile 構建

創建Dockerfile

首先,創建目錄php-fpm,用于存放后面的相關東西。

runoob@runoob:~$ mkdir -p ~/php-fpm/logs ~/php-fpm/conf

logs目錄將映射為php-fpm容器的日志目錄

conf目錄里的配置文件將映射為php-fpm容器的配置文件

進入創建的php-fpm目錄,創建Dockerfile

FROM debian:jessie
# persistent / runtime deps
ENV PHPIZE_DEPS \
        autoconf \
        file \
        g++ \
        gcc \
        libc-dev \
        make \
        pkg-config \
        re2c
RUN apt-get update && apt-get install -y \
        $PHPIZE_DEPS \
        ca-certificates \
        curl \
        libedit2 \
        libsqlite3-0 \
        libxml2 \
    --no-install-recommends && rm -r /var/lib/apt/lists/*
ENV PHP_INI_DIR /usr/local/etc/php
RUN mkdir -p $PHP_INI_DIR/conf.d
##<autogenerated>##
ENV PHP_EXTRA_CONFIGURE_ARGS --enable-fpm --with-fpm-user=www-data --with-fpm-group=www-data
##</autogenerated>##
ENV GPG_KEYS 0BD78B5F97500D450838F95DFE857D9A90D90EC1 6E4F6AB321FDC07F2C332E3AC2BF0BC433CFC8B3
ENV PHP_VERSION 5.6.22
ENV PHP_FILENAME php-5.6.22.tar.xz
ENV PHP_SHA256 c96980d7de1d66c821a4ee5809df0076f925b2fe0b8c362d234d92f2f0a178e2
RUN set -xe \
    && buildDeps=" \
        $PHP_EXTRA_BUILD_DEPS \
        libcurl4-openssl-dev \
        libedit-dev \
        libsqlite3-dev \
        libssl-dev \
        libxml2-dev \
        xz-utils \
    " \
    && apt-get update && apt-get install -y $buildDeps --no-install-recommends && rm -rf /var/lib/apt/lists/* \
    && curl -fSL "http://php.net/get/$PHP_FILENAME/from/this/mirror" -o "$PHP_FILENAME" \
    && echo "$PHP_SHA256 *$PHP_FILENAME" | sha256sum -c - \
    && curl -fSL "http://php.net/get/$PHP_FILENAME.asc/from/this/mirror" -o "$PHP_FILENAME.asc" \
    && export GNUPGHOME="$(mktemp -d)" \
    && for key in $GPG_KEYS; do \
        gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$key"; \
    done \
    && gpg --batch --verify "$PHP_FILENAME.asc" "$PHP_FILENAME" \
    && rm -r "$GNUPGHOME" "$PHP_FILENAME.asc" \
    && mkdir -p /usr/src/php \
    && tar -xf "$PHP_FILENAME" -C /usr/src/php --strip-components=1 \
    && rm "$PHP_FILENAME" \
    && cd /usr/src/php \
    && ./configure \
        --with-config-file-path="$PHP_INI_DIR" \
        --with-config-file-scan-dir="$PHP_INI_DIR/conf.d" \
        $PHP_EXTRA_CONFIGURE_ARGS \
        --disable-cgi \
# --enable-mysqlnd is included here because it's harder to compile after the fact than extensions are (since it's a plugin for several extensions, not an extension in itself)
        --enable-mysqlnd \
# --enable-mbstring is included here because otherwise there's no way to get pecl to use it properly (see https://github.com/docker-library/php/issues/195)
        --enable-mbstring \
        --with-curl \
        --with-libedit \
        --with-openssl \
        --with-zlib \
    && make -j"$(nproc)" \
    && make install \
    && { find /usr/local/bin /usr/local/sbin -type f -executable -exec strip --strip-all '{}' + || true; } \
    && make clean \
    && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false -o APT::AutoRemove::SuggestsImportant=false $buildDeps
COPY docker-php-ext-* /usr/local/bin/
##<autogenerated>##
WORKDIR /var/www/html
RUN set -ex \
    && cd /usr/local/etc \
    && if [ -d php-fpm.d ]; then \
        # for some reason, upstream's php-fpm.conf.default has "include=NONE/etc/php-fpm.d/*.conf"
        sed 's!=NONE/!=!g' php-fpm.conf.default | tee php-fpm.conf > /dev/null; \
        cp php-fpm.d/www.conf.default php-fpm.d/www.conf; \
    else \
        # PHP 5.x don't use "include=" by default, so we'll create our own simple config that mimics PHP 7+ for consistency
        mkdir php-fpm.d; \
        cp php-fpm.conf.default php-fpm.d/www.conf; \
        { \
            echo '[global]'; \
            echo 'include=etc/php-fpm.d/*.conf'; \
        } | tee php-fpm.conf; \
    fi \
    && { \
        echo '[global]'; \
        echo 'error_log = /proc/self/fd/2'; \
        echo; \
        echo '[www]'; \
        echo '; if we send this to /proc/self/fd/1, it never appears'; \
        echo 'access.log = /proc/self/fd/2'; \
        echo; \
        echo 'clear_env = no'; \
        echo; \
        echo '; Ensure worker stdout and stderr are sent to the main error log.'; \
        echo 'catch_workers_output = yes'; \
    } | tee php-fpm.d/docker.conf \
    && { \
        echo '[global]'; \
        echo 'daemonize = no'; \
        echo; \
        echo '[www]'; \
        echo 'listen = [::]:9000'; \
    } | tee php-fpm.d/zz-docker.conf

EXPOSE 9000
CMD ["php-fpm"]

通過Dockerfile創建一個鏡像,替換成你自己的名字

runoob@runoob:~/php-fpm$ docker build -t php:5.6-fpm .

創建完成后,我們可以在本地的鏡像列表里查找到剛剛創建的鏡像

runoob@runoob:~/php-fpm$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
php                 5.6-fpm             025041cd3aa5        6 days ago          456.3 MB

方法二:docker pull php

查找Docker Hub上的php鏡像

runoob@runoob:~/php-fpm$ docker search php
NAME                      DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
php                       While designed for web development, the PH...   1232      [OK]       
richarvey/nginx-php-fpm   Container running Nginx + PHP-FPM capable ...   207                  [OK]
phpmyadmin/phpmyadmin     A web interface for MySQL and MariaDB.          123                  [OK]
eboraas/apache-php        PHP5 on Apache (with SSL support), built o...   69                   [OK]
php-zendserver            Zend Server - the integrated PHP applicati...   69        [OK]       
million12/nginx-php       Nginx + PHP-FPM 5.5, 5.6, 7.0 (NG), CentOS...   67                   [OK]
webdevops/php-nginx       Nginx with PHP-FPM                              39                   [OK]
webdevops/php-apache      Apache with PHP-FPM (based on webdevops/php)    14                   [OK]
phpunit/phpunit           PHPUnit is a programmer-oriented testing f...   14                   [OK]
tetraweb/php              PHP 5.3, 5.4, 5.5, 5.6, 7.0 for CI and run...   12                   [OK]
webdevops/php             PHP (FPM and CLI) service container             10                   [OK]
...

這里我們拉取官方的鏡像,標簽為5.6-fpm

runoob@runoob:~/php-fpm$ docker pull php:5.6-fpm

等待下載完成后,我們就可以在本地鏡像列表里查到REPOSITORY為php,標簽為5.6-fpm的鏡像。

使用php-fpm鏡像

運行容器

runoob@runoob:~/php-fpm$ docker run -p 9000:9000 --name  myphp-fpm -v ~/nginx/www:/www -v $PWD/conf:/usr/local/etc/php -v $PWD/logs:/phplogs   -d php:5.6-fpm
00c5aa4c2f93ec3486936f45b5f2b450187a9d09acb18f5ac9aa7a5f405dbedf
runoob@runoob:~/php-fpm$ 

命令說明:

-p 9000:9000 :將容器的9000端口映射到主機的9000端口

--name myphp-fpm :將容器命名為myphp-fpm

-v ~/nginx/www:/www :將主機中項目的目錄www掛載到容器的/www

-v $PWD/conf:/usr/local/etc/php :將主機中當前目錄下的conf目錄掛載到容器的/usr/local/etc/php

-v $PWD/logs:/phplogs :將主機中當前目錄下的logs目錄掛載到容器的/phplogs

查看容器啟動情況

runoob@runoob:~/php-fpm$ docker ps
CONTAINER ID    IMAGE         COMMAND      ...    PORTS                    NAMES
00c5aa4c2f93    php:5.6-fpm   "php-fpm"    ...    0.0.0.0:9000->9000/tcp   myphp-fpm

通過瀏覽器訪問phpinfo()

Docker安裝MySQL

方法一:通過 Dockerfile構建

創建Dockerfile

首先,創建目錄mysql,用于存放后面的相關東西。

runoob@runoob:~$ mkdir -p ~/mysql/data ~/mysql/logs ~/mysql/conf

data目錄將映射為mysql容器配置的數據文件存放路徑

logs目錄將映射為mysql容器的日志目錄

conf目錄里的配置文件將映射為mysql容器的配置文件

進入創建的mysql目錄,創建Dockerfile

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 91日韩精品天海翼在线观看 | 一区二区三区久久 | 欧美日在线 | 中文字幕亚洲综合久久男男 | 久久国产一久久高清 | 国产情精品嫩草影院88av | 欧美一级毛片在线播放 | 欧美日韩成人在线视频 | 精品久久久久久久一区二区手机版 | 亚洲精品高清久久 | 青青爽国产手机在线观看免费 | 另类图片综合网 | 亚洲大片免费观看 | 人人干人 | 91成人免费福利网站在线 | 国产一区免费观看 | 亚洲精品久久99久久 | 亚洲国产综合久久精品 | 日本一区二区三区不卡在线视频 | 久久夜色视频 | 中国国产一国产一级毛片视频 | 又粗又硬又大久久久 | 国产欧美日本在线观看 | 久久亚洲精品一区二区三区浴池 | 亚洲精品成人中文网 | 日本涩涩网站 | 日韩三级一区二区 | 在线免费观看一级毛片 | 欧美午夜视频一区二区三区 | 五月天免费在线视频 | 色四月| 国产高清不卡视频 | 欧美胖老妇 | 欧美日韩一级片在线观看 | 起碰成人免费公开网视频 | 色综合色狠狠天天综合色hd | 欧美日韩一本大道香蕉欧美 | 国产精品999| 日本最新免费二区三区 | 四虎精品免费视频 | 亚洲青草|