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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

系统制成docker镜像_Docker学习以及镜像制作流程

發(fā)布時間:2025/5/22 windows 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 系统制成docker镜像_Docker学习以及镜像制作流程 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、何為Docker

Docker 是一個開源的應用容器引擎,基于?Go 語言?并遵從Apache2.0協(xié)議開源。

Docker 可以讓開發(fā)者打包他們的應用以及依賴包到一個輕量級、可移植的容器中,然后發(fā)布到任何流行的 Linux 機器上,也可以實現(xiàn)虛擬化。

容器是完全使用沙箱機制,相互之間不會有任何接口(類似 iPhone 的 app),更重要的是容器性能開銷極低。

Docker的應用場景

Web 應用的自動化打包和發(fā)布。

自動化測試和持續(xù)集成、發(fā)布。

在服務型環(huán)境中部署和調(diào)整數(shù)據(jù)庫或其他的后臺應用。

從頭編譯或者擴展現(xiàn)有的OpenShift或Cloud Foundry平臺來搭建自己的PaaS環(huán)境。

二、Docker架構

容器 VS 虛擬機:

容器和虛擬機具有相似的資源隔離和分配優(yōu)勢,但功能有所不同,因為容器虛擬化的是操作系統(tǒng),而不是硬件,因此容器更容易移植,效率也更高。

容器是一個應用層抽象,用于將代碼和依賴資源打包在一起。多個容器可以在同一臺機器上運行,共享操作系統(tǒng)內(nèi)核,但各自作為獨立的進程在用戶空間中運行。與虛擬機相比,容器占用的空間較少(容器鏡像大小通常只有幾十兆),瞬間就能完成啟動。

虛擬機 (VM) 是一個物理硬件層抽象,用于將一臺服務器變成多臺服務器。管理程序允許多個 VM 在一臺機器上運行。每個 VM 都包含一整套操作系統(tǒng)、一個或多個應用、必要的二進制文件和庫資源,因此占用大量空間。而且 VM 啟動也十分緩慢。

三、Docker安裝

前提條件

目前,CentOS 僅發(fā)行版本中的內(nèi)核支持 Docker。

Docker 運行在 CentOS 7 上,要求系統(tǒng)為64位、系統(tǒng)內(nèi)核版本為 3.10 以上。

Docker 運行在?CentOS-6.5?或更高的版本的 CentOS 上,要求系統(tǒng)為64位、系統(tǒng)內(nèi)核版本為 2.6.32-431 或者更高版本。

使用 yum 安裝(CentOS 7下)

Docker 要求 CentOS 系統(tǒng)的內(nèi)核版本高于 3.10 ,查看本頁面的前提條件來驗證你的CentOS 版本是否支持 Docker 。

通過?uname -r命令查看你當前的內(nèi)核版本

[root@runoob ~]#uname -r 3.10.0-327.el7.x86_64

安裝 Docker

Docker 軟件包和依賴包已經(jīng)包含在默認的 CentOS-Extras 軟件源里,安裝命令如下:

[root@runoob ~]#yum -y install docker-io

安裝完成。

啟動 Docker 后臺服務

[root@runoob ~]#service docker start

測試運行 hello-world

[root@runoob ~]#docker run hello-world

由于本地沒有hello-world這個鏡像,所以會下載一個hello-world的鏡像,并在容器內(nèi)運行。

使用腳本安裝 Docker

1、使用?sudo?或?root?權限登錄 Centos。

2、確保 yum 包更新到最新。

$ sudo yum update

3、執(zhí)行 Docker 安裝腳本。

$ curl -fsSL https://get.docker.com/ | sh

執(zhí)行這個腳本會添加?docker.repo?源并安裝 Docker。

4、啟動 Docker 進程。

$ sudo service docker start

5、驗證?docker?是否安裝成功并在容器中執(zhí)行一個測試的鏡像。

$ sudo docker run hello-world

到此,docker 在 CentOS 系統(tǒng)的安裝完成。

四、Docker 使用

docker run ubuntu:15.10 /bin/echo "Hello world" -- docker [option] OS /bash//echo "content"

各個參數(shù)解析:

docker:?Docker 的二進制執(zhí)行文件。

run:與前面的 docker 組合來運行一個容器。

ubuntu:15.10指定要運行的鏡像,Docker首先從本地主機上查找鏡像是否存在,如果不存在,Docker 就會從鏡像倉庫?Docker Hub?下載公共鏡像。

/bin/echo "Hello world":在啟動的容器里執(zhí)行的命令

以上命令完整的意思可以解釋為:Docker 以 ubuntu15.10 鏡像創(chuàng)建一個新容器,然后在容器里執(zhí)行 bin/echo "Hello world",然后輸出結果。

[option] run , stop

1、docker -h 幫助

2、獲取鏡像

sudo docker pull NAME[:TAG]

sudo docker pull centos:latest

3、啟動Container盒子

sudo docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

sudp docker run -t -i contos /bin/bash

4、查看鏡像列表,列出本地的所有images

sudo docker images [OPTIONS] [NAME]

sudo docker images centos

5、查看容器列表,可看到我們創(chuàng)建過的所有container

sudo docker ps [OPTIONS]

sudo docker ps -a

6、刪除鏡像,從本地刪除一個已經(jīng)下載的鏡像

sudo docker rmi IMAGE [IMAGE...]

sudo docker rmi centos:latest

7、移除一個或多個容器實例

sudo docker rm [OPTIONS] CONTAINER [CONTAINER...]

移除所有微運行的容器

sudo docker rm sudo docker ps -aq

8、停止一個正在運行的容器

sudo docker kill [OPTIONS] CONTAINER [CONTAINNER...]

sudo docker kill 026e

9、重啟一個正在運行的容器

sudo docker restart [OPTIONS] contains[CONTAINER]

sudo docker restart 026e

10、停止一個已經(jīng)停止的容器

sudo docker start [OPTIONS] CONTAINER [CONTAINER..]

sudo docker start 026e

五、Docker制作

我們使用命令?docker build?, 從零開始來創(chuàng)建一個新的鏡像。為此,我們需要創(chuàng)建一個?Dockerfile?文件,其中包含一組指令來告訴 Docker 如何構建我們的鏡像。

runoob@runoob:~$ cat DockerfileFROM centos:6.7MAINTAINER Fisher"fisher@sudops.com"RUN /bin/echo 'root:123456'|chpasswd

RUN useradd runoob

RUN /bin/echo 'runoob:123456'|chpasswd

RUN /bin/echo -e "LANG=\"en_US.UTF-8\"">/etc/default/localEXPOSE 22EXPOSE 80CMD /usr/sbin/sshd -D

每一個指令都會在鏡像上創(chuàng)建一個新的層,每一個指令的前綴都必須是大寫的。

第一條FROM,指定使用哪個鏡像源

RUN 指令告訴docker 在鏡像內(nèi)執(zhí)行命令,安裝了什么。。。

然后,我們使用?Dockerfile?文件,通過?docker build?命令來構建一個鏡像。

runoob@runoob:~$ docker build -t runoob/centos:6.7.Sendingbuild context to Dockerdaemon 17.92kB

Step1:FROM centos:6.7--->d95b5ca17cc3

Step2:MAINTAINER Fisher"fisher@sudops.com"--->Usingcache

--->0c92299c6f03Step3:RUN /bin/echo 'root:123456'|chpasswd

--->Usingcache

--->0397ce2fbd0aStep4:RUN useradd runoob

......

參數(shù)說明:

-t?:指定要創(chuàng)建的目標鏡像名

.?:Dockerfile?文件所在目錄,可以指定Dockerfile?的絕對路徑

使用docker images 查看創(chuàng)建的鏡像已經(jīng)在列表中存在,鏡像ID為860c279d2fec

runoob@runoob:~$ docker images

REPOSITORY TAG IMAGE ID CREATED SIZE

runoob/centos 6.7860c279d2fecAbouta minute ago 190.6MB

runoob/ubuntu v2 70bf1840fd7c17hours ago 158.5MB

ubuntu 14.0490d5884b1ee06days ago 188MB

php 5.6f40e9e0f10c8 10days ago 444.8MB

nginx latest 6f8d099c3adc12days ago 182.7MB

mysql 5.6f2e8d6c772c0 3weeks ago 324.6MB

httpd latest 02ef73cf1bc03weeks ago 194.4MB

ubuntu 15.104e3b13c8a2665weeks ago 136.3MB

hello-world latest 690ed74de00f6months ago 960B

centos 6.7d95b5ca17cc3 6months ago 190.6MB

training/webapp latest 6fae60ef344612months ago 348.8MB

我們可以使用新的鏡像來創(chuàng)建容器

runoob@runoob:~$ docker run -t -i runoob/centos:6.7/bin/bash

[root@41c28d18b5fb /]#id runoob

uid=500(runoob)gid=500(runoob)groups=500(runoob)

從上面看到新鏡像已經(jīng)包含我們創(chuàng)建的用戶runoob

設置鏡像標簽

我們可以使用?docker tag?命令,為鏡像添加一個新的標簽。

runoob@runoob:~$ docker tag 860c279d2fecrunoob/centos:dev

docker tag?鏡像ID,這里是?860c279d2fec ,用戶名稱、鏡像源名(repository name)和新的標簽名(tag)。

使用 docker images 命令可以看到,ID為860c279d2fec的鏡像多一個標簽。

runoob@runoob:~$ docker images

REPOSITORY TAG IMAGE ID CREATED SIZE

runoob/centos 6.7860c279d2fec5hours ago 190.6MB

runoob/centos dev 860c279d2fec5hours ago 190.6MB

runoob/ubuntu v2 70bf1840fd7c22hours ago 158.5MB

ubuntu 14.0490d5884b1ee06days ago 188MB

php 5.6f40e9e0f10c8 10days ago 444.8MB

nginx latest 6f8d099c3adc13days ago 182.7MB

mysql 5.6f2e8d6c772c0 3weeks ago 324.6MB

httpd latest 02ef73cf1bc03weeks ago 194.4MB

ubuntu 15.104e3b13c8a2665weeks ago 136.3MB

hello-world latest 690ed74de00f6months ago 960B

centos 6.7d95b5ca17cc3 6months ago 190.6MB

training/webapp latest 6fae60ef344612months ago 348.8MB

Docker 刪除鏡像

分為兩部:

首先 刪除 容器,再刪除鏡像

docker ps -a

docker rm id

刪除鏡像

docker ps -a

docker images

docker rmi id

檢查是否刪除成功

docker images

注意點:

1. 刪除前需要保證容器是停止的 ?stop

2. 需要注意刪除鏡像和容器的命令不一樣。 docker rmi ID ?,其中 容器(rm) ?和 鏡像(rmi)

3. 順序需要先刪除容器

參考文獻:

http://www.runoob.com/docker/centos-docker-install.html

http://www.runoob.com/docker/windows-docker-install.html(windows10安裝docker)

https://www.cnblogs.com/yufeng218/p/8370670.html

https://blog.csdn.net/winy_lm/article/details/77980529

總結

以上是生活随笔為你收集整理的系统制成docker镜像_Docker学习以及镜像制作流程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。