dockerfile構建LNRP環境練手

2021-10-04 21:19:56 字數 4579 閱讀 7473

from

run 寫的是系統映象中的命令

copy 複製本地資源到指定目錄

expose 埠開放

from centos:centos7

# 建立nginx的使用者組,並建立好相應的data和conf

run mkdir /data && mkdir /conf && groupadd -r nginx && useradd -r -g nginx nginx

# copy centos源 到docker

copy ./epel-7.repo /etc/yum.repos.d/epel.repo

# 安裝nginx所需要的依賴包

run yum update -y \

&& yum clean all \

&& yum makecache \

&& yum -y install gcc gcc-c++ autoconf automake make zlib zlib-devel net-tools openssl* pcre* wget \

&& yum clean all && rm -rf /var/cache/yum/*

copy ./nginx-1.17.10.tar.gz /data/nginx-1.17.10.tar.gz

run cd /data \

&& tar -zxvf nginx-1.17.10.tar.gz \

&& cd nginx-1.17.10 \

&& ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx \

&& make && make install && rm -rf /data/nginx-1.17.10.tar.gz && rm -rf /data/nginx-1.17.10

copy ./nginx.conf /conf

# 全域性使用nginx,軟鏈結

run ln -s /usr/local/nginx/sbin/* /usr/local/sbin

#宣告埠

expose 80

#執行一條命令 nginx -c /conf/nginx.conf

#配置fastcgi的一些引數

fastcgi_param script_name $real_script_name;

fastcgi_param path_info $path_info;

include /usr/local/nginx/conf/fastcgi_params;

}error_page 500 502 503 504 /50x.html;

location = /50x.html }}

上面命令複製到 dockerfile 檔案中 然後執行

最後出現

successfully built 4ae7e42f38a9

successfully tagged my-nginx:latest

就行了

docker run -itd --name my-nginx my-nginx

docker exec -it my-nginx bash 進入容器

docker stop my-nginx|xargs docker rm 停止並刪除容器

跟本地82埠繫結
docker run -itd -p 82:80 --name my-nginx my-nginx

# 修改php.ini的檔案 extension=redis.so

expose 9000

#設定工作目錄

docker run -itd -v /users/bob/workspace/服務/docker/nginx/conf:/conf -p 82:80 --name my-nginx my-nginx

之後在 對應的本地目錄或者容器中對應的目錄 新增刪除檔案 都會同步

docker exec -it my-php sh

www 目錄下建立個index.php

vi index.php

<?php 

echo 'hello world';

就能輸出 hello worl

dockerfile構建映象

尋找官方映象的dockerfile 在hub.docker.com 中,輸入映象的名字,往下拉就能找到跳轉到dockerfile的鏈結。下圖是centos的dockerfile from scratch maintainer the centos project add c68 docker.tar...

Dockerfile構建映象

docker映象是由 件系統疊加 成的,系統的最底層是 bootfs,相當於就是linux核心的引導 件系統 接下來第 層是rootfs,這 層可以是 種或多種操 作系統 如debian或ubuntu 件系統 docker中的rootfs是唯讀狀態的 docker利 聯合掛載技 術將各層 件系統疊加...

Dockerfile構建映象

mkdir dockerfile3 cd dockerfile3 touch dockerfile 在這個例子裡,我們通過run指令更新了已經安裝的apt倉庫,安裝了nginx包。之後將 hi,i am in your container 寫入 var www html index.nginx de...