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 shwww 目錄下建立個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...