国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【Docker】利用Dockerfile制作個人的鏡像文件詳細講解

這篇具有很好參考價值的文章主要介紹了【Docker】利用Dockerfile制作個人的鏡像文件詳細講解。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

【Docker】利用Dockerfile制作個人的鏡像文件詳細講解

前言

Docker 是一個開源的應(yīng)用容器引擎,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個可移植的容器中,然后發(fā)布到任何流行的Linux或Windows操作系統(tǒng)的機器上,也可以實現(xiàn)虛擬化,容器是完全使用沙箱機制,相互之間不會有任何接口。


??作者簡介:熱愛跑步的恒川,致力于C/C++、Java、Python等多編程語言,熱愛跑步,喜愛音樂的一位博主。
??本文收錄于恒川的日常匯報系列,大家有興趣的可以看一看
??相關(guān)專欄C語言初階、C語言進階系列等,大家有興趣的可以看一看
??Python零基礎(chǔ)入門系列,Java入門篇系列正在發(fā)展中,喜歡Python、Java的朋友們可以關(guān)注一下哦!

1. Dockerfile簡介

Dockerfile是用來構(gòu)建Docker鏡像的構(gòu)建文件,是由一系列命令和參數(shù)構(gòu)成的腳本。此文章為恒川學(xué)習(xí)筆記了解。

簡單來說,Dockerfile就是把我們安裝環(huán)境的每個步驟和指令,放到一個文件,最后一鍵執(zhí)行,最后做成一個你想要的環(huán)境。

Dockerfile是用來構(gòu)建Docker鏡像的構(gòu)建文件,是由一系列命令和參數(shù)構(gòu)成的腳本。

Docker構(gòu)建三步曲:

  • 編寫dockerfile文件
  • docker build 構(gòu)建image鏡像文件
  • docker run 運行容器

2. Dockerfile相關(guān)指令

Dockerfile 是一個包含創(chuàng)建鏡像所有命令的文本文件,通過docker build命令可以根據(jù) Dockerfile 的內(nèi)容構(gòu)建鏡像,
在介紹如何構(gòu)建之前先介紹下 Dockerfile 的基本語法結(jié)構(gòu)。

Dockerfile 有以下指令選項:

  • FROM 基礎(chǔ)鏡像,當(dāng)前新鏡像是基于哪個鏡像的
  • MAINTAINER 鏡像維護者的姓名和郵箱地址
  • RUN 容器構(gòu)建時需要運行的命令
  • CMD 指定一個容器啟動時要運行的命令。
    dockerfile中可以有多個CMD指令,但只有最后一個生效,CMD會被docker run之后的參數(shù)替換。
  • EXPOSE 當(dāng)前容器對外暴露的端口號
  • ENV 用來在構(gòu)建鏡像過程中設(shè)置環(huán)境變量
  • ADD 將宿主機目錄下的文件拷貝到鏡像里面并且ADD命令會自動處理URL和解壓tar壓縮包
  • COPY COPY:類似ADD,拷貝文件和目錄到鏡像中,但是它只是拷貝,不會自動處理URL和解壓tar壓縮包。
  • ENTRYPOINT 指定一個容器啟動時要運行的命令。
  • ENTRYPOIT的目的和CMD一樣,都是在指定容器啟動程序及參數(shù)。
  • VOLUME 容器數(shù)據(jù)卷,用于數(shù)據(jù)保存和持久化工作
  • USER 指定運行容器時的用戶名或UID,后續(xù)的 RUN 也會使用指定用戶
  • WORKDIR 指定在容器創(chuàng)建后,終端默認登錄進來工作目錄,一個落腳點
  • ONBUILD 當(dāng)構(gòu)建一個被繼承的Dockerfile時運行命令,父鏡像在被子繼承后,父鏡像的onbuild被觸發(fā)。

3. Dockerfile編寫

在當(dāng)前目錄新建一個文件夾docker-run, cd進入到文件夾,touch新建一個Dockerfile,然后vi打開文件,開始編輯

[root@yoyo ~]# mkdir docker-run
[root@yoyo ~]# cd docker-run/
[root@yoyo docker-run]# touch Dockerfile
[root@yoyo docker-run]# vi Dockerfile

編輯內(nèi)容如下:

# 更新pip
RUN pip install --upgrade pip 

# 工作目錄
WORKDIR /code
ADD . /code

# pip安裝依賴包
RUN pip install -r requirements.txt

# 傳遞參數(shù)
ENTRYPOINT ["pytest"]

# 默認顯示help幫助信息
CMD ["--help"]

4. requirements.txt

requirements.txt是python的相關(guān)依賴包, 可以通過freeze命令生成

pip3 freeze >requirements.txt

[root@yoyo docker-run]# cat requirements.txt 
APScheduler==3.5.3
asn1crypto==0.24.0
atomicwrites==1.3.0
attrs==18.2.0
backports.csv==1.0.7
bcrypt==3.1.7
beautifulsoup4==4.7.1
cached-property==1.5.1
certifi==2018.11.29
cffi==1.12.3
chardet==3.0.4
cryptography==2.7
DBUtils==1.3
defusedxml==0.5.0
diff-match-patch==20181111
Django==2.1.4
django-bootstrap3==11.0.0
django-crispy-forms==1.7.2
django-formtools==2.1
django-import-export==1.2.0
django-ranged-response==0.2.0
django-reversion==3.0.3
django-simple-captcha==0.5.10
django-stdimage==4.0.1
docker==3.7.3
docker-compose==1.24.1
docker-pycreds==0.4.0
dockerpty==0.4.1
docopt==0.6.2
et-xmlfile==1.0.1
future==0.17.1
httplib2==0.12.1
idna==2.7
jdcal==1.4
jsonschema==2.6.0
more-itertools==6.0.0
mysqlclient==1.4.2.post1
odfpy==1.4.0
openpyxl==2.6.1
paramiko==2.6.0
Pillow==5.4.1
pluggy==0.6.0
progressbar2==3.39.3
py==1.7.0
pycparser==2.19
pymssql==2.1.4
PyMySQL==0.9.3
PyNaCl==1.3.0
pytest==3.6.3
python-utils==2.3.0
pytz==2018.7
PyYAML==3.13
requests==2.20.1
six==1.12.0
soupsieve==1.7.3
tablib==0.13.0
texttable==0.9.1
tzlocal==1.5.1
urllib3==1.24.1
websocket-client==0.56.0
xlrd==1.2.0
xlwt==1.3.0

5. build構(gòu)建鏡像文件

docker build 命令用于使用 Dockerfile 創(chuàng)建鏡像。OPTIONS說明:

  1. -f :指定要使用的Dockerfile路徑;
  2. -pull :嘗試去更新鏡像的新版本;
  3. -quiet, -q :安靜模式,成功后只輸出鏡像 ID;
  4. -tag, -t: 鏡像的名字及標簽,通常 name:tag 或者 name 格式;可以在一次構(gòu)建中為一個鏡像設(shè)置多個標簽。

-t參數(shù)設(shè)置鏡像名稱yoyo_pytes和tag標簽名稱v1,注意最后面有個點.

docker build -t yoyo_pytest:v1 .

[root@yoyo docker-run]# docker build -t yoyo_pytest:v1 .
Sending build context to Docker daemon  11.78kB
Step 1/8 : FROM python:3.6
 ---> cfcdf565ff94
Step 2/8 : MAINTAINER yoyo  <283340479@qq.com>
 ---> Using cache
 ---> f523b919fcf9
Step 3/8 : RUN pip install --upgrade pip
 ---> Using cache
 ---> 3399b50dab4e
Step 4/8 : WORKDIR /code
 ---> Using cache
 ---> 7223a20e17fd
Step 5/8 : ADD . /code
 ---> 650b554ccd6c
Step 6/8 : RUN pip install -r requirements.txt
 ---> Running in 0e49d444f7d8

運行過程中可以看到按步驟運行,如:Step 1/8

運行完成后,可以通過docker images查看生成的鏡像

[root@yoyo docker-run]# docker images
REPOSITORY                 TAG                 IMAGE ID            CREATED             SIZE
yoyo_pytest                v1                  6b4267ce7ac4        21 seconds ago      1.02GB
[root@yoyo docker-run]#

6. run運行容器

在當(dāng)前目錄新建一個test_h.py文件,寫入pytest測試腳本

import pytest
def test_one():
    print("正在執(zhí)行----test_one")
    x = "this"
    assert 'h' in x

def test_two():
    print("正在執(zhí)行----test_two")
    x = "hello"
    assert x

def test_three():
    print("正在執(zhí)行----test_three")
    a = "hello"
    b = "hello world"
    assert a in b

if __name__ == "__main__":
    pytest.main(["-s", "test_h.py"])

使用docker run運行容器

  1. -it -t讓docker分配一個偽終端并綁定到容器的標準輸入上, -i則讓容器的標準輸入保持打開.
  2. -rm 容器退出時,自動清除容器。
  3. -rm選項不能與-d同時使用
  4. -v 將容器的工作目錄/code掛載到宿主機的$PWD,也就是當(dāng)前目錄
  5. yoyo_pytest:v1 容器名稱和tag名稱
  6. test_h.py 后面跟著需要執(zhí)行的腳本名稱
[root@yoyo docker-run]# docker run -it --rm -v "$PWD":/code yoyo_pytest:v1 test_h.py  -s
================================================================== test session starts ==================================================================
platform linux -- Python 3.6.9, pytest-3.6.3, py-1.7.0, pluggy-0.6.0
rootdir: /code, inifile:
collected 3 items                                                                                                                                       

test_h.py 正在執(zhí)行----test_one
.正在執(zhí)行----test_two
.正在執(zhí)行----test_three
.

=============================================================== 
3 passed in 0.01 seconds 

如果這份博客對大家有幫助,希望各位給恒川一個免費的點贊??作為鼓勵,并評論收藏一下?,謝謝大家?。?!
制作不易,如果大家有什么疑問或給恒川的意見,歡迎評論區(qū)留言。文章來源地址http://www.zghlxwxcb.cn/news/detail-501093.html

到了這里,關(guān)于【Docker】利用Dockerfile制作個人的鏡像文件詳細講解的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Docker容器化技術(shù)(使用Dockerfile制作鏡像)

    Docker容器化技術(shù)(使用Dockerfile制作鏡像)

    Docker 支持通過擴展現(xiàn)有鏡像,創(chuàng)建新的鏡像。實際上,Docker Hub 中 99% 的鏡像都是通過在 base 鏡像中安裝和配置需要的軟件構(gòu)建出來的。 1、Docker 鏡像為什么分層 鏡像分層最大的一個好處就是共享資源。 比如說有多個鏡像都從相同的 base 鏡像構(gòu)建而來,那么 Docker Host 只需在

    2024年03月19日
    瀏覽(861)
  • 【云原生-Docker】docker鏡像制作、上傳、dockerfile命令解析

    【云原生-Docker】docker鏡像制作、上傳、dockerfile命令解析

    在實際業(yè)務(wù)場景中,需要制作多個不同版本進行鏡像使用,如maven版本、JDK、openJDK不同使用等,所以需要做多個針對不同版本做不同的鏡像。 這里記錄一下之前devops用的openJDK版本、某些部門需要用orcle JDK、特此需要做不同的鏡像,鏡像內(nèi)包含centos、maven、jdk。 基礎(chǔ)鏡像 基礎(chǔ)

    2024年02月03日
    瀏覽(150)
  • Docker(七)—— 如何用Dockerfile制作自己的鏡像

    Docker(七)—— 如何用Dockerfile制作自己的鏡像

    目錄 需求: 一、步驟? 二、Dockerfile 三、 實戰(zhàn) —— 構(gòu)建自己的centos 1. dockerfile編寫 2. build構(gòu)建 3. run 運行 四、用docker commit實現(xiàn) 四、實戰(zhàn) —— 構(gòu)建jar包的鏡像(helloworld版本) 五、實戰(zhàn) —— 構(gòu)建jar包的鏡像(兩個容器通信版本)? 自己寫了一個小程序,如何帶著環(huán)境打包

    2024年02月05日
    瀏覽(94)
  • docker基于已有容器和通過Dockerfile進行制作鏡像配置介紹

    目錄 一.制作鏡像的兩種方式 1.在已有容器中更新并提交這個鏡像 2.使用Dockerfile來制作 二.基于容器制作鏡像 1.格式 (1)主要格式 (2)可選參數(shù) 2.案例 基于容器創(chuàng)建鏡像設(shè)置標簽并進行驗證是否可用 (1)運行容器并寫入驗證內(nèi)容(改變?nèi)萜鞔鎯觾?nèi)容) (2)另起終端制

    2024年02月11日
    瀏覽(107)
  • Docker容器學(xué)習(xí):Dockerfile制作Web應(yīng)用系統(tǒng)nginx鏡像

    Docker容器學(xué)習(xí):Dockerfile制作Web應(yīng)用系統(tǒng)nginx鏡像

    目錄 編寫Dockerfile 1.文件內(nèi)容需求: 2.編寫Dockerfile: 3.開始構(gòu)建鏡像 ?4.現(xiàn)在我們運行一個容器,查看我們的網(wǎng)頁是否可訪問 推送鏡像到私有倉庫 1.把要上傳的鏡像打上合適的標簽 2.登錄harbor倉庫 3.上傳鏡像 1.文件內(nèi)容需求: 基于centos基礎(chǔ)鏡像。 指定作者信息。 安裝nginx服

    2024年02月11日
    瀏覽(119)
  • docker (九)-進階篇-dockerfile制作zabbix鏡像(帶python3環(huán)境)

    環(huán)境說明:根據(jù)前文docker (七)部署zabbix進行zabbix告警配置時,發(fā)現(xiàn)zabbix沒有腳本所需要的python3環(huán)境,也沒有yum環(huán)境 參考?https://www.cnblogs.com/daniel-ming/p/15341636.html ? ? ? ? ?Zabbix docker鏡像 build Python3_docker zabbixserver python-CSDN博客 容器起不來...查看日志 ? ? ?7:20240220:105203.7

    2024年02月22日
    瀏覽(20)
  • 【docker知識】如何從鏡像返回它的Dockerfile文件

    ????????Docker 鏡像是通過構(gòu)建 Dockerfiles 創(chuàng)建的。構(gòu)建過程執(zhí)行 Dockerfile 中的指令來創(chuàng)建構(gòu)成最終鏡像的文件系統(tǒng)層。 如果給出已有圖像,您可以檢索構(gòu)建它的 Dockerfile 嗎?在本文中,我們將研究兩種可以實現(xiàn)此目的的方法。 ????????當(dāng)您構(gòu)建自己的 Docker 映像時,您

    2024年02月04日
    瀏覽(17)
  • windows11下使用docker打包鏡像并上傳到個人鏡像倉庫(詳細圖文)

    windows11下使用docker打包鏡像并上傳到個人鏡像倉庫(詳細圖文)

    一、windows下安裝docker 步驟: 注意 :安裝windows版的docker 需要先安裝WSL(windows System for Linux)具體可參考:https://www.ytso.com/270594.html, 本文就不做詳細描述。 docker官網(wǎng) https://www.docker.com/products/docker-desktop/ 下載Docker Desktop 2. 下載成功后,雙擊進行安裝 安裝成功后 在 PowerShell 查看

    2024年02月13日
    瀏覽(28)
  • docker制作一個python的鏡像文件

    個人博客添加鏈接描述 要制作一個包含Python應(yīng)用程序的Docker鏡像,并在構(gòu)建過程中復(fù)制相應(yīng)的文件到鏡像中,您可以按照以下步驟進行操作: 準備工作: 確保您已在本地安裝了Docker,并且可以通過終端或命令行訪問Docker命令。 在項目根目錄下,將您的Python應(yīng)用程序準備好,

    2024年02月09日
    瀏覽(19)
  • Dockerfile制作LAMP環(huán)境鏡像

    Dockerfile制作LAMP環(huán)境鏡像

    編寫Dockerfile 不修改默認頁面 修改默認頁面 該Dockerfile在宿主機安裝有GUI時通過瀏覽器可看出效果。 Start Script 目錄結(jié)構(gòu)及文件 登錄私有倉庫 給鏡像打標簽 上傳鏡像 頁面檢查 檢測鏡像可用性

    2024年02月11日
    瀏覽(44)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包