docker 依託dockerfile進行打包映象

2021-09-11 03:24:12 字數 3401 閱讀 7327

近幾年,越來使用越廣泛。我們先簡單的知道一下docker的主要三個概念名詞,倉庫(repository)、容器(container)、映象(image)。概念請檢視官方文件,由於字(我)數(非)要(常)求(懶),這裡不一一詳細說明。

簡單的說就是,從dockerhub中pull乙個映象過來,依託映象給做成容器。

上圖:這張高大上的圖,想表明的就是乙個容器(container)都是以映象層去打包的。

ok!簡單的概念性東西咱不做具體講解,如今這麼火爆的技術,各種分分鐘入門的文章隨處可見。我不想做同質化,直接上乾貨,如何利用dockerfile建立自己的基於centos7打包nginx映象。

這裡在多說一句,既然容器都是以映象層去打包的,映象層越少,映象也就越小,所以寫dockerfile的時候請一定惜字如金!!惜字如金!!

建立工作目錄(這裡注意所有的檔案包括所需要的安裝包全部在這個目錄內)

#mkdir /root/centos_nginx

#cd /root/centos_nginx

#wget 

準備就緒,開始編寫dockfile:

#vim dockerfile

from centos

:latest

#基於centos映象

label maintainer

="ace [email protected]"

#標註作者****等資訊

workdir

/usr

/local

/src

/#當前工作目錄

add nginx

-1.14

.0.tar

.gz

./#本地檔案在當前目錄,add則直接解壓到當前工作目錄

workdir nginx

-1.14.0

/#工作目錄進入到解壓後目錄

run yum install

-y gcc gcc-c

++&&

\

#執行shell命令

yum install

-y pcre pcre

-devel

&&\

yum install

-y zlib zlib

-devel &&\

yum install

-y openssl openssl

-devel libssl

-dev &&\

./configure

--prefix

=/usr/

local

/nginx &&\

make

&&make install

expose

80#暴露埠為80

準備工作已經做好了,開始建立映象

#docker build –t my_nginx:v1-1 ./

#按照當前目錄內dockerfile打包映象,名字為my_nginx:v1-1

檢視映象是否打包完成

# docker image ls

repository tag image id created size

my_nginx v1-1

d1bcadfaa3cc

2hours ago

369mb

centos latest

1e1148e4cc2c

7weeks ago

202mb

映象已經準備好了,開始建立容器

# docker run --name ace_nginx1 -d -it -p 8080:80 my_nginx:v1-1

--name

指定容器名稱-d

後台執行–i

互動模式

–t tty –p

指定對映埠

將docker80

埠對映到宿主機的

8080

埠,最後指定映象名稱

檢視當前存在的容器

# docker container  ps

container id image command created status ports names

a528460856c4 my_nginx:v1

-1"/bin/bash"

2minutes ago up2

minutes

0.0.

0.0:

8080

->80/

tcp

ace_nginx1

可以看到剛建立的容器,現在進入到容器中

# docker exec -it a528460856c4 /bin/bash

這裡注意:

id號就是上面檢視到的容器的id號

容器內啟動nginx並確認

# /usr/local/nginx/sbin/nginx

# ps -ef | grep nginx

root 320

017:04

?00:00

:00nginx

:master process

/usr

/local

/nginx

/sbin

/nginx

nobody

3332017

:04?00

:00:00

nginx

:worker process

至此,基於centos的nginx容器已經啟動完成,測試吧:

先在容器內測試:

我們可以看到

nginx

歡迎介面的原始碼了

最後用瀏覽器訪問宿主機的8080埠,也已經可以看到nginx歡迎介面了!

大功告成!!

基於python開發環境的Dockerfile總結

在本地建立乙個管理docker的目錄 macosx 系統下的 mkdir p mywork docker python 其他作業系統平台自定義管理目錄,這裡省略python開發環境的dockerfile from ubuntu 不指定版本預設使用最新版本 maintainer keithl 更改配置...

車牌號識別依託OCR文字識別核心

車牌號識別sdk是專為對車牌識別有需求的使用者,有軟體產品開發的客戶設計的。採用th ocr演算法,通過計算機視覺和影象處理演算法以及神經網路演算法而研發出來的產品。適用於城市交通管理 超速監控 公路計費 停車場管理 被盜車輛偵破等應用開發。pc端車牌號識別具有以下特點 1.依託ocr文字識別核心,...

銳易特依託大資料公升級核心產品

文章講的是銳易特依託大資料公升級核心產品,伴隨著大資料 智慧型城市等it技術與理念的落地,新興和傳統的it企業都迎來了前所未有的機遇與挑戰。值得一提的是,作為國產資訊整合中介軟體領導者的銳易特,處於高速發展的關鍵期,年前,剛剛完成數千萬元融資,蓄力衛生醫療大資料市場。年後,其自主研發的核心產品公升級...