1. 程式人生 > 實用技巧 >Docker 映象基礎(三)

Docker 映象基礎(三)

基於Dockerfile製作yum版本nginx映象

[root@node-2 ~]# mkdir /opt/nginx
[root@node-2 ~]# cd /opt/nginx/

## 建立Dockerfile檔案(Dockerfile 開頭字母必須大寫):
vim Dockerfile
#
#   docker web images
FROM centos:latest

RUN yum install epel-release -y
RUN yum install nginx -y

EXPOSE 80 443 8080

CMD ["/usr/sbin/nginx","-g","daemon off;"]         ## 沒有新增環境變數進去 只能寫全路徑


## 生成Dockerfile映象:
docker build -t nginx:v1 .                        ## 最後有個點 很重要

## 檢視生成的docker images:
[root@node-2 nginx]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               v1                  ad4850303e64        3 minutes ago       333MB
centos              latest              831691599b88        3 weeks ago         215MB

## 從生成的映象執行一個容器:
docker run -ti --rm -p 80:80 nginx:v1

## 訪問 這個容器的IP :
http://ip/

建立nginx 自定義介面:


## 確認映象裡面的nginx 程式碼目錄在哪裡:
docker run -ti --rm -p 80:80 nginx:v1 bash
vim /etc/nginx/nginx.conf

## 修改Dockerfile 檔案:
vim Dockerfile
#
# docker web images
FROM centos:latest

RUN yum install epel-release -y
RUN yum install nginx -y && rm -rf /usr/share/nginx/html/* 
ADD  code.tar.gz   /usr/share/nginx/html/


EXPOSE 80 443 8080

CMD ["/usr/sbin/nginx","-g","daemon off;"]         ## 沒有新增環境變數進去 只能寫全路徑

## 構建映象:
docker build -t nginx:v2 . 

## 生成容器:
docker run -ti --rm -p 80:80 nginx:v2 bash

## 訪問:
curl http://IP
......檢視內容即可


docker build scripts:

#!/bin/bash

TAG=$1
docker build -t nginx:$TAG .

### 上傳harbor:
#docker push ........


### 執行指令碼:
1 ) sh docker_build.sh 20200715
2 ) docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               20200715            dd0aea4c4b95        3 days ago          333MB