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

Docker入門教程:本地打包docker鏡像

這篇具有很好參考價(jià)值的文章主要介紹了Docker入門教程:本地打包docker鏡像。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

docker打包鏡像,Docker,docker,java,容器

什么是Docker?

Dockers是基于Go語言開發(fā)的虛擬容器技術(shù)。以前我們部署應(yīng)用通常是將源代碼打包成一個(gè)jar包運(yùn)行,這樣就會(huì)受到運(yùn)行環(huán)境、配置環(huán)境的限制,而且程序也不能跨服務(wù)器運(yùn)行。Docker基于Linux容器技術(shù),將Java源代碼、運(yùn)行環(huán)境像MySQL、redis、jdk等通通打包成一個(gè)鏡像,實(shí)現(xiàn)“一次鏡像,處處運(yùn)行”。極大的提高的應(yīng)用的移植性以及部署的效率。

?簡(jiǎn)單來說,docker是一個(gè)解決了運(yùn)行環(huán)境和配置問題的軟件容器,方便做持續(xù)集成并有助于整體發(fā)布的容器虛擬化技術(shù)。

容器與虛擬機(jī)的區(qū)別

  • 傳統(tǒng)虛擬機(jī)技術(shù)是虛擬出一套硬件后,在其上運(yùn)行的一個(gè)完整的操作系統(tǒng),在該系統(tǒng)上在運(yùn)行所需應(yīng)用進(jìn)程。而Docker不需要捆綁一整套的操作系統(tǒng),它只需要軟件工作所需的庫(kù)資源和設(shè)置。

  • Docker容器是在操作系統(tǒng)層面上實(shí)現(xiàn)虛擬化,直接復(fù)用本地主機(jī)的操作系統(tǒng),而傳統(tǒng)虛擬機(jī)則是在硬件層面實(shí)現(xiàn)虛擬化;Docker依賴于Linux內(nèi)核環(huán)境,其實(shí)本質(zhì)上是在已經(jīng)運(yùn)行的Linux下制造一個(gè)隔離的文件環(huán)境。

優(yōu)點(diǎn):

  • ?更輕量:基于容器的虛擬化,僅包含業(yè)務(wù)運(yùn)行所需的runtime環(huán)境。
  • ?更高效:無操作系統(tǒng)虛擬化開銷。
  • ?更靈活:容器隔離,devoops理念。

Docker的組成

?????????docker中有三個(gè)基本概念:

  • 鏡像(image):一個(gè)只讀的模板,可以用來創(chuàng)建Docker容器。類似于Student類

  • 容器(Container):容器是鏡像創(chuàng)建的運(yùn)行實(shí)例。容器是鏡像運(yùn)行時(shí)的實(shí)體,為鏡像提供了一個(gè)標(biāo)準(zhǔn)的和隔離的運(yùn)行環(huán)境。它可以被啟動(dòng)、停止、刪除,每個(gè)容器之間都是隔離的。類似于stu實(shí)例對(duì)象

  • 倉(cāng)庫(kù)(repository):存放鏡像文件的地方。比如maven倉(cāng)庫(kù)是存放jar包的地方。

類比于--》Student stu = new Student();

docker打包鏡像,Docker,docker,java,容器

docker安裝

Linux上安裝:

# 首先安裝 Docker
yum -y install docker

# 然后啟動(dòng) Docker 服務(wù)
service docker start

# 測(cè)試安裝是否成功
docker -v
    
# 配置阿里云鏡像加速
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://******.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

Windows上安裝:下載Docker Desktop,配置WSL?

docker打包鏡像,Docker,docker,java,容器

docker run 的執(zhí)行流程及原理

執(zhí)行流程:

docker打包鏡像,Docker,docker,java,容器

docker是一個(gè)client-server結(jié)構(gòu)的系統(tǒng),docker的守護(hù)進(jìn)程運(yùn)行在主機(jī)上。dockerServer接收到docker-client的命令,就會(huì)執(zhí)行這個(gè)命令。

docker打包鏡像,Docker,docker,java,容器

容器基本操作

docker 中的容器就是一個(gè)輕量級(jí)的虛擬機(jī),是鏡像運(yùn)行起來的一個(gè)狀態(tài),本文就先來看看容器的基本操作。

鏡像就像是一個(gè)安裝程序,而容器則是程序運(yùn)行時(shí)的一個(gè)狀態(tài)。

  • 查看容器
#查看正在運(yùn)行容器
docker ps

#查看所有容器
docker ps -a

#查看最新創(chuàng)建的容器
docker ps -l
  • 創(chuàng)建容器
#創(chuàng)建容器
docker create 鏡像
	--創(chuàng)建一個(gè) nginx 容器:docker create nginx
	--指定容器的name為nginx:docker create --name=nginx nginx
#創(chuàng)建并啟動(dòng)一個(gè)容器
docker run 鏡像
	--docker run --name nginx1 -d -p 8080:80 nginx
	--name 含義和上文一樣,表示創(chuàng)建的容器的名字,-d 表示容器在后臺(tái)運(yùn)行,-p 表示將容器的 80 端口映射到宿主機(jī)的 8080 端口
  • 啟動(dòng)關(guān)閉容器
#啟動(dòng)容器
docker start id|name
#重啟容器
docker restart id|name
#關(guān)閉容器
docker stop id|name
  • 刪除容器
#單個(gè)刪除
docker rm id|name
#批量刪除
docker rm $(docker ps -a -q)
  • 查看容器信息、日記
#容器詳情
docker inspect id|name

#查看容器進(jìn)程
docker top 

#查看你容器日記
docker logs id|name
		-f :實(shí)時(shí)日記
		-t : 顯示時(shí)間
		-tail: 控制輸出行數(shù)
  • 容器導(dǎo)入導(dǎo)出
#導(dǎo)出一個(gè)已經(jīng)創(chuàng)建的容器導(dǎo)到一個(gè)文件
docker export -o 文件名.tar 容器id
#將文件導(dǎo)入為鏡像
docker import 文件名.tar 鏡像名:鏡像標(biāo)簽

????????docker export -o image-test.tar 1ffcd3e4a201

docker打包鏡像,Docker,docker,java,容器

鏡像的基本操作

????????鏡像是容器運(yùn)行的基礎(chǔ),容器是鏡像運(yùn)行后的形態(tài)。鏡像是一個(gè)包含程序運(yùn)行必要以來環(huán)境和代碼的只讀文件,它采用分層的文件系統(tǒng),將每一層的改變以讀寫層的形式增加到原來的只讀文件上。

  • 查看所有鏡像
docker images

docker打包鏡像,Docker,docker,java,容器

  1. TAG: TAG用于區(qū)分同一倉(cāng)庫(kù)中的不同鏡像,默認(rèn)為latest。

  2. IMAGE ID: IMAGE ID是鏡像的一個(gè)唯一標(biāo)識(shí)符。

  3. CREATED: CREATED表示鏡像的創(chuàng)建時(shí)間。

  4. SIZE: SIZE表示鏡像的大小。

  5. REPOSITORY:倉(cāng)庫(kù)名稱,倉(cāng)庫(kù)一般用來存放同一類型的鏡像。倉(cāng)庫(kù)的名稱由其創(chuàng)建者指定。如果沒有指定則為 <none>

  • ?搜索鏡像
docker search name
  • 下載鏡像
docker pull name:版本

??版本可以在Docker hub上查看?

  • 刪除鏡像
docker rmi id|name

Dockerfile

Dockerfile是用來構(gòu)建docker鏡像的構(gòu)建文件。

其實(shí)Dockerfile就是一個(gè)普通的文本文件,其中包含了一條條的指令,每一條指令都會(huì)構(gòu)建一層。

docker打包鏡像,Docker,docker,java,容器

?dockerfile指令

FROM 		#基礎(chǔ)鏡像,一切從這里開始構(gòu)建
MAINTAINER	#鏡像是誰寫的,姓名+郵箱
RUN			#鏡像構(gòu)建時(shí)需要運(yùn)行的命令
ADD			#步驟,tomcat鏡像,這個(gè)tomcat壓縮包;添加內(nèi)容
WORKDIR		#鏡像工作目錄
VOLUME		#掛載的目錄
EXPOSE		#暴露端口配置
CMD			#指定這個(gè)容器啟動(dòng)的時(shí)候要運(yùn)行的命令,只有最后一個(gè)會(huì)生效,可被替代
ENTRYPOINT	#指定這個(gè)容器啟動(dòng)的時(shí)候要運(yùn)行的命令,可以追加命令
ONBUILD		#當(dāng)構(gòu)建一個(gè)被繼承DockerFile 這個(gè)時(shí)候就會(huì)運(yùn)行 ONBUILD 的指令,觸發(fā)指令
COPY		#類似ADD,將我們的文件拷貝至鏡像中
ENV			#構(gòu)建的時(shí)候設(shè)置環(huán)境變量

docker打包鏡像,Docker,docker,java,容器

  1. FROM nginx 表示該鏡像的構(gòu)建,以已有的 nginx 鏡像為基礎(chǔ),在該鏡像的基礎(chǔ)上構(gòu)建。

  2. MAINTAINER 指令用來聲明創(chuàng)建鏡像的作者信息以及郵箱信息,這個(gè)命令不是必須的。

  3. RUN 指令用來修改鏡像,算是使用比較頻繁的一個(gè)指令了,該指令可以用來安裝程序、安裝庫(kù)以及配置應(yīng)用程序等,一個(gè) RUN 指令執(zhí)行會(huì)在當(dāng)前鏡像的基礎(chǔ)上創(chuàng)建一個(gè)新的鏡像層,接下來的指令將在這個(gè)新的鏡像層上執(zhí)行,RUN 語句有兩種不同的形式:shell 格式和 exec 格式。本案例采用的 shell 格式,shell 格式就像 linux 命令一樣,exec 格式則是一個(gè) JSON 數(shù)組,將命令放到數(shù)組中即可。在使用 RUN 命令時(shí),適當(dāng)?shù)臅r(shí)候可以將多個(gè) RUN 命令合并成一個(gè),這樣可以避免在創(chuàng)建鏡像時(shí)創(chuàng)建過多的層。

  4. COPY 語句則是將鏡像上下文中的 hello.html 文件拷貝到鏡像中。

    docker打包鏡像,Docker,docker,java,容器

命令解釋:

  1. -t 參數(shù)用來指定鏡像的命名空間,倉(cāng)庫(kù)名以及 TAG 等信息。

  2. 最后面的 . 是指鏡像構(gòu)建上下文。

本地打包docker鏡像

下載安裝Docker Desktop,配置完成后即可在windows CMD上操作docker命令

docker打包鏡像,Docker,docker,java,容器

編寫一個(gè)簡(jiǎn)單的springboot項(xiàng)目,提供一個(gè)helloworld接口

@RestController
public class HelloWorld {


    @GetMapping("/hello")
    public String helloImages() {
        return "hello images!";
    }

}

使用maven插件打包--install--,在target包下可以看得到生成的jar包。

?

docker打包鏡像,Docker,docker,java,容器

?編寫Dockerfile文件

# 基礎(chǔ)鏡像使用java
FROM java:8

#作者
MAINTAINER CJC

#將jar包添加到容器中并更名為: hello-docker-image.jar
ADD docker-image-test-0.0.1-SNAPSHOT.jar hello-docker-image.jar

#運(yùn)行jar包
RUN bash -c 'touch hello-docker-image.jar'
ENTRYPOINT ["java","-jar","hello-docker-image.jar"]

#暴露端口
EXPOSE 8080

?將jar包和dockerfile文件置于同一目錄下執(zhí)行命令,構(gòu)建鏡像:

docker build -t Name:TagName .

> build -t hello-docker-image:V1.0 .

-t參數(shù)指定構(gòu)建成后,鏡像的倉(cāng)庫(kù)、標(biāo)簽等,
Name 給鏡像取的名字
TagName 給鏡像取的標(biāo)簽
最后的 .  表示 Dockerfile 文件在當(dāng)前目錄下 

?查看鏡像:docker images

docker打包鏡像,Docker,docker,java,容器

?創(chuàng)建并啟動(dòng)容器:docker run -d -p 8080:8080 6e7772b68332

docker打包鏡像,Docker,docker,java,容器

?docker desktop上可以看到容器正在運(yùn)行:

docker打包鏡像,Docker,docker,java,容器

docker數(shù)據(jù)卷操作

一般情況下,當(dāng)我們需要將數(shù)據(jù)從宿主機(jī)拷貝到容器中使用的都是docker的拷貝命令。數(shù)據(jù)卷可以避免這種麻煩的操作。

數(shù)據(jù)卷可以實(shí)現(xiàn)容器和宿主機(jī)之間的數(shù)據(jù)共享,簡(jiǎn)單來說數(shù)據(jù)卷就是在宿主機(jī)和容器之間搭建的一個(gè)映射的工作區(qū),兩者可以同步修改。

docker run -itd --name nginx -v /Users/sang/blog/docker/docker/:/usr/share/nginx/html/ -p 80:80 bc26f1ed35cf

?這樣便是將宿主機(jī)中的 /Users/sang/blog/docker/docker/ 目錄掛載到容器的 /usr/share/nginx/html/ 目錄下。接下來讀者只需要在 /Users/sang/blog/docker/docker/ 目錄下添加 html 文件,或者修改 html 文件,都能在 nginx 訪問中立馬看到效果。

查看所有的數(shù)據(jù)卷:

docker volume ls

查看數(shù)據(jù)卷詳情

docker volume inspect

刪除數(shù)據(jù)卷文章來源地址http://www.zghlxwxcb.cn/news/detail-779266.html

docker volume rm

到了這里,關(guān)于Docker入門教程:本地打包docker鏡像的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • Docker入門教程

    Docker入門教程

    容器是一個(gè)允許我們?cè)谫Y源隔離的過程中,運(yùn)行應(yīng)用程序和其依賴項(xiàng)的 、輕量的 、操作系統(tǒng)級(jí)別的虛擬化技術(shù), 運(yùn)行應(yīng)用程序所需的所有必要組件都打包為單個(gè)鏡像,這個(gè)鏡像是可以重復(fù)使用的。當(dāng)鏡像運(yùn)行時(shí),它是運(yùn)行在獨(dú)立的環(huán)境中,并不會(huì)和其他應(yīng)用共享主機(jī)操作系

    2024年02月03日
    瀏覽(6)
  • Docker超詳細(xì)基礎(chǔ)教程,快速入門docker首選

    一、docker概述 1.什么是docker Docker 是一個(gè)開源的應(yīng)用容器引擎,基于 Go 語言 并遵從 Apache2.0 協(xié)議開源。 Docker 可以讓開發(fā)者打包他們的應(yīng)用以及依賴包到一個(gè)輕量級(jí)、可移植的容器中,然后發(fā)布到任何流行的 Linux 機(jī)器上,也可以實(shí)現(xiàn)虛擬化。 容器是完全使用沙箱機(jī)制,相互之

    2024年02月13日
    瀏覽(18)
  • Docker入門簡(jiǎn)明教程

    Docker入門簡(jiǎn)明教程

    Docker 是基于 Go 語言實(shí)現(xiàn)的云開源項(xiàng)目,是基于 Linux 的多項(xiàng)開源技術(shù)提供高效、敏捷和輕量級(jí)的容器方案。創(chuàng)建于 2013 年初,自從開源后就受到了廣泛的關(guān)注,從長(zhǎng)遠(yuǎn)的眼光來看,Docker 是未來虛擬化的一個(gè)發(fā)展的趨勢(shì)。帶來了更輕量快捷的的體驗(yàn),一臺(tái)主機(jī)可以同時(shí)運(yùn)行數(shù)千

    2024年01月23日
    瀏覽(20)
  • Docker 快速上手學(xué)習(xí)入門教程

    Docker 快速上手學(xué)習(xí)入門教程

    目錄 1、docker 的基礎(chǔ)概念 2、怎樣打包和運(yùn)行一個(gè)應(yīng)用程序? 3、如何對(duì) docker 中的應(yīng)用程序進(jìn)行修改? 4、如何對(duì)創(chuàng)建的鏡像進(jìn)行共享? 5、如何使用 volumes 名稱對(duì)容器中的數(shù)據(jù)進(jìn)行存儲(chǔ)?// 數(shù)據(jù)掛載 6、另一種掛載方式:目錄掛載 7、實(shí)現(xiàn)容器之間的相互通信 8、使用?Docker

    2024年02月09日
    瀏覽(21)
  • Docker環(huán)境離線安裝教程,附docker容器鏡像打包,導(dǎo)出,導(dǎo)入加載鏡像等

    (此方式在某些環(huán)境下可能不支持,如果不支持 請(qǐng)參考方式2) 下載文件:https://dn-dao-get.daocloud.io/docker/docker-1.13.0-centos-7.2.1511.tar.gz 上傳,解壓文件, 進(jìn)入目錄 執(zhí)行 :bash install.sh 啟動(dòng)docker服務(wù):service docker restart 下載地址:https://download.docker.com/linux/static/stable/x86_64/ 驗(yàn)證:

    2024年02月15日
    瀏覽(29)
  • Docker超詳細(xì)教程——入門篇+實(shí)戰(zhàn)

    Docker超詳細(xì)教程——入門篇+實(shí)戰(zhàn)

    docker官網(wǎng) 鏡像倉(cāng)庫(kù) 概念:類似于各種項(xiàng)目和軟件的應(yīng)用商店,大家把項(xiàng)目放到docker倉(cāng)庫(kù)中也就是這個(gè)應(yīng)用商店,其他人就可以下載使用這個(gè)項(xiàng)目,各個(gè)項(xiàng)目直接獨(dú)立互不影響。使用docker只需要把我們的項(xiàng)目打包成鏡像放到docker中。 imag鏡像 容器的模板,用來構(gòu)建容器,相當(dāng)

    2024年02月07日
    瀏覽(20)
  • Docker 快速入門實(shí)操教程(完結(jié))

    Docker 快速入門實(shí)操教程(完結(jié))

    Docker,啟動(dòng)! 如果安裝好Docker不知道怎么使用,不理解各個(gè)名詞的概念,不太了解各個(gè)功能的用途,這篇文章應(yīng)該會(huì)對(duì)你有幫助。 前置條件:已經(jīng)安裝Docker并且Docker成功啟動(dòng)。 實(shí)操內(nèi)容:使用Docker容器替換本地安裝的程序并遷移數(shù)據(jù)(MySQL、redis)。 最終目的:熟練使用D

    2024年02月19日
    瀏覽(18)
  • Docker鏡像文件打包和啟動(dòng)簡(jiǎn)易教程-Buildx構(gòu)建多平臺(tái)鏡像

    在目標(biāo)文件夾下執(zhí)行以下命令 生成Dockerfile文件后,在其中寫入 將本地Python項(xiàng)目打包成docker鏡像,并在docker中運(yùn)行 - 灰信網(wǎng)(軟件開發(fā)博客聚合) 創(chuàng)建docker, . 必不可少 保存打包的鏡像文件 命令行啟動(dòng)鏡像文件 compase啟動(dòng)鏡像文件 首先寫入一個(gè) docker_name.yaml 文件 docker compos

    2024年02月10日
    瀏覽(39)
  • ubuntu安裝、使用docker超級(jí)詳細(xì)的入門教程

    ubuntu安裝、使用docker超級(jí)詳細(xì)的入門教程

    查看官網(wǎng)(https://docs.docker.com/get-docker),根據(jù)系統(tǒng)版本安裝。 刪除老版本 設(shè)置儲(chǔ)存庫(kù) 添加官方秘鑰 授權(quán)docker并更新apt 安裝最新docker 試運(yùn)行 卸載應(yīng)用 刪除目錄 默認(rèn)路徑 登錄阿里云平臺(tái)(支付寶就能登錄) 找到容器鏡像服務(wù) 控制臺(tái)-產(chǎn)品與服務(wù)-彈性計(jì)算-容器鏡像服務(wù) 找到鏡

    2024年02月05日
    瀏覽(41)
  • Linux 環(huán)境下Docker將鏡像打包導(dǎo)出到本地,上傳至內(nèi)網(wǎng)服務(wù)器(八)

    Linux 環(huán)境下Docker將鏡像打包導(dǎo)出到本地,上傳至內(nèi)網(wǎng)服務(wù)器(八)

    docker將鏡像導(dǎo)出到本地,上傳至內(nèi)網(wǎng)服務(wù)器上 背景:在企業(yè)中往往出現(xiàn)了內(nèi)網(wǎng)不能和外網(wǎng)相通,不能使用docker pull命令來拉取鏡像,這個(gè)時(shí)候我們就可以考慮在有所需鏡像的服務(wù)器上導(dǎo)出鏡像,再將其上傳到內(nèi)網(wǎng)服務(wù)器上。 有兩種方法,一種是通過容器,一種是通過鏡像,其

    2024年02月13日
    瀏覽(20)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包