近幾年,越來使用越廣泛。我們先簡單的知道一下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容器內啟動nginx並確認這裡注意:
id號就是上面檢視到的容器的id號
# /usr/local/nginx/sbin/nginx至此,基於centos的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
先在容器內測試:最後用瀏覽器訪問宿主機的8080埠,也已經可以看到nginx歡迎介面了!我們可以看到
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企業都迎來了前所未有的機遇與挑戰。值得一提的是,作為國產資訊整合中介軟體領導者的銳易特,處於高速發展的關鍵期,年前,剛剛完成數千萬元融資,蓄力衛生醫療大資料市場。年後,其自主研發的核心產品公升級...