日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Docker进阶 dockerfile指令构建docker镜像

發布時間:2023/12/20 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Docker进阶 dockerfile指令构建docker镜像 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

初識Dockerfile

編寫一個自己的docker 鏡像:

編寫Dockerfile文件:

將Dockerfile文件轉為鏡像:

查看自己構建的docker鏡像

使用自己構建的docker鏡像生成容器:

DockerFile

Dockerfile指令:

docker build . 命令

查看鏡像是如何生成的

實操訓練:Dockerfile構建Nginx鏡像:

編寫Dockerfile制作鏡像,生成鏡像名為my_build:Nginx1。首先創建目錄dockerfile-nginx1,保存Dockerfile文件。具體要求如下:

開始操作:

創建dockerfile-nginx1文件夾,進入該文件夾,編寫Dockerfile文件

編寫Dockerfile文件內容:

在該文件夾里再編寫一個run.sh

docker build 構建鏡像

?docker images查看鏡像:

?使用該鏡像構建容器:


初識Dockerfile

Dockerfile就是用來構建docker鏡像的構建文件!命令腳本!

通過這個腳本可以生成鏡像,鏡像是一層層的,腳本是一行行的命令,每行命令都是一層

dockerfile是面向開發的,我們以后要發布項目,作鏡像,就需要編寫dockerfile文件,這個文件十分簡單。

Dockerfile鏡像之間成為了企業交付的標準,必須掌握!

編寫一個自己的docker 鏡像:

查看一個鏡像是怎么生成的:

docker history 鏡像ID或鏡像名

構建步驟:

1、編寫一個dockerfile文件2、docker build 構建成為一個鏡像3、docker run 運行鏡像4、docker push 發布鏡像

編寫Dockerfile文件:

#創建一個dockerfile文件,名字可以隨機,建議Dockerfile #文件中的內容:指令(大寫) 參數#實例測試: #創建目錄存放dockerfile文件的目錄: [root@localhost ~]# mkdir docker_test#進入目錄創建dockerfile文件: [root@localhost ~]# mkdir docker_test [root@localhost ~]# cd docker_test/ [root@localhost docker_test]# touch dockerfile#編寫dockerfile文件,在文件中寫入dockerfile指令: [root@localhost docker_test]# vim dockerfile FROM centos VOLUME ["volume01","volume02"] CMD echo "----end----" CMD /bin/bash

將Dockerfile文件轉為鏡像:

#使用docker build . 命令將dockerfile文件轉為鏡像[root@localhost docker_test]# docker build -f /root/docker_test/dockerfile -t hzw/centos . Sending build context to Docker daemon 2.048kBStep 1/4 : FROM centos---> 5d0da3dc9764 Step 2/4 : VOLUME ["volume01","volume02"]---> Running in d4b23ae86ace Removing intermediate container d4b23ae86ace---> 8f39792fbef7 Step 3/4 : CMD echo "----end----"---> Running in 1bb4751f04ef Removing intermediate container 1bb4751f04ef---> 2e2bb5e2a502 Step 4/4 : CMD /bin/bash---> Running in 82a0b5905405 Removing intermediate container 82a0b5905405---> 39a1fd86fd73 Successfully built 39a1fd86fd73 Successfully tagged hzw/centos:latest#由此可以發現docker創建鏡像也是一層層創建的。每個命令都是鏡像的一層。

查看自己構建的docker鏡像

[root@localhost docker_test]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE hzw/centos latest 39a1fd86fd73 2 minutes ago 231MB

使用自己構建的docker鏡像生成容器:

[root@localhost docker_test]# docker run -it hzw/centos /bin/bash [root@f62a714bb306 /]# ls bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var volume01 volume02#可以看見我們構建的鏡像也是能正常進去使用的,并且我們在dockerfile寫指令掛載的目錄也在這個容器里。

DockerFile

dockerfile時用來構建docker鏡像文件!命令參數腳本!
構建步驟:

1、編寫一個dockerfile文件

2、docker build . 構建稱為一個鏡像

3、docker run 運行鏡像

4、docker push 發布鏡像(DockerHub、阿里云鏡像倉庫)

Dockerfile指令:

FROM #指定基礎鏡像,一切從這里開始構建MAINTAINER #鏡像是誰寫的,姓名+郵箱RUN #鏡像構建的時候需要運行的命令ADD #步驟:tomcat鏡像,這個tomcat壓縮包!添加內容WORKDIR #鏡像的工作目錄VOLUME #掛載的目錄EXPOST #暴露端口配置CMD #指定這個容器啟動時候要運行的命令,Dockerfile里有多個CMD指令的話,只有最后一個CMD指令會生效,可被替代ENTRYPOINT #指定這個容器其董事會要運行的命令,可以追加命令ONBUILD #當構建一個被繼承dockerfile,這個時候就會運行ONBUILD的指令。是一個觸發指令COPY #類似ADD,將我們文件拷貝到鏡像ENV #構建的時候設置環境變量!

docker build . 命令

構建好dockerfile文件后,我們就用docker build命令將文件構建成鏡像。

#命令使用方法: docker build -f dockerfile文件路徑 -t 取個鏡像名 .#參數詳解:-f dockerfile的文件路徑,可以寫絕對路徑,也可以寫相對路徑-t 給構建的鏡像取個名字,名字格式: 名字:標簽. 構建上下文的路徑 必須寫

查看鏡像是如何生成的

docker history 鏡像ID

?docker命令總結:

實操訓練:Dockerfile構建Nginx鏡像:

編寫Dockerfile制作鏡像,生成鏡像名為my_build:Nginx1。首先創建目錄dockerfile-nginx1,保存Dockerfile文件。具體要求如下:

(1)基于鏡像centos:7

(2)安裝Nginx

? ? ? ?a.安裝相關依賴

? ? ? ?b.下載并解壓Nginx

(3)工作目錄設為:nginx-1.9.7

(4)編譯安裝Nginx

(5)對外暴露80,443端口

(6)修改Nginx配置文件,以非daemon方式啟動

(7)復制服務啟動腳本并設置權限

(8)啟動容器時執行腳本run.sh

run.sh內容如下所示:

開始操作:

創建dockerfile-nginx1文件夾,進入該文件夾,編寫Dockerfile文件

mkdir dockerfile-nginx1 cd dockerfile-nginx1/ vim Dockerfile

編寫Dockerfile文件內容:

#該文件時基于centos7鏡像為基礎創建的 FROM centos:7 #下載nginx依賴源 RUN yum -y install gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel #下載wget RUN yum install -y wget #下載nginx RUN wget http://nginx.org/download/nginx-1.9.7.tar.gz #解壓nginx RUN tar -zxvf nginx-1.9.7.tar.gz #執行編譯命令,通過--prefix=安裝目錄,指定nginx安裝目錄 RUN ./configure --prefix=/usr/localinx && make && make install #設置工作目錄 WORKDIR nginx-1.9.7 #暴露端口80和443 EXPOSE 80 EXPOSE 443#將虛擬機文件復制到容器里 ADD run.sh /run.sh#給run.sh授予可執行權限 RUN chmod 775 /run.sh#啟動容器后執行run.sh腳本 CMD ["/run.sh"]

在該文件夾里再編寫一個run.sh

vim run.shrun.sh里的內容: #!/bin/bash /usr/local/nginx/sbin/nginx

docker build 構建鏡像

docker build -t my_build:nginx1 .

?docker images查看鏡像:

?使用該鏡像構建容器:

?可以看到鏡像成功啟動,東西也下載安裝好了,工作目錄設置好了,文件也復制到容器里了

總結

以上是生活随笔為你收集整理的Docker进阶 dockerfile指令构建docker镜像的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。