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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

制作Docker镜像的两种方式

發(fā)布時(shí)間:2025/3/15 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 制作Docker镜像的两种方式 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

此文已由作者朱笑天授權(quán)網(wǎng)易云社區(qū)發(fā)布。

歡迎訪問網(wǎng)易云社區(qū),了解更多網(wǎng)易技術(shù)產(chǎn)品運(yùn)營經(jīng)驗(yàn)。


一、使用docker commit命令制作docker鏡像

1. pull一個(gè)centos6.6的基礎(chǔ)鏡像,并運(yùn)行一個(gè)docker container,然后在其中進(jìn)行定制化(安裝、配置服務(wù)等);

[root@localhost ~]# docker pull centos:6.6 ? ? ? ? ??
Pulling repository centos ? ? ? ? ? ?
8b44529354f3: Download complete ? ? ? ? ? ??
f1b10cd84249: Download complete ? ? ? ? ? ??
Status: Downloaded newer image for centos:6.6????????????????????
[root@localhost ~]# docker images ? ? ? ? ? ?
REPOSITORY????????? TAG???????????????? IMAGE ID??????????? CREATED???????????? VIRTUAL SIZE ? ? ? ? ? ?
centos????????????? 6.6???????????????? 8b44529354f3??????? 4 days ago????????? 202.6 MB ? ? ? ? ? ?
centos????????????? centos6.6?????????? 8b44529354f3??????? 4 days ago????????? 202.6 MB ? ? ? ? ? ?
[root@localhost ~]# docker run -i -t centos:6.6 bash ? ? ? ? ? ?
[root@b42c1ba929a9 /]# ls ? ? ? ? ? ?
bin? dev? etc? home? lib? lib64? lost+found? media? mnt? opt? proc? root? sbin? selinux? srv? sys? tmp? usr? var ? ? ? ? ? ?
[root@b42c1ba929a9 /]# mkdir /tmp/test.txt ? ? ? ? ? ?
[root@b42c1ba929a9 /]# exit ? ? ? ? ? ?
exit

接下來,查看一下container的改動(dòng):

[root@localhost ~]# docker ps -a ? ? ? ? ??
CONTAINER ID??????? IMAGE?????????????? COMMAND???????????? CREATED????????????? STATUS????????????????????? PORTS?????????????? NAMES ? ? ? ? ? ?
b42c1ba929a9??????? centos:6.6????????? "bash"????????????? About a minute ago?? Exited (0) 22 seconds ago?????????????????????? berserk_mcclintock???
804a56ce8008??????? f1b10cd84249??????? "/bin/echo hello"?? 22 minutes ago?????????????????????????????????????????????????????? test?????????????????
[root@localhost ~]# docker diff b42c1ba929a9 ? ? ? ? ? ?
C /tmp ? ? ? ? ? ?
A /tmp/test.txt ? ? ? ? ? ?
C /root ? ? ? ? ? ?
A /root/.bash_history

?

2. 執(zhí)行docker commit命令創(chuàng)建一個(gè)鏡像:

[root@localhost ~]# docker commit -m "new container" b42c1ba929a9 yuanhuan/newcontainer1 ? ? ? ? ??
07b146e0be9e98c253122784c3837dd1604f7692e794f3601dad747d41901cd4 ? ? ? ? ? ?
[root@localhost ~]# docker images ? ? ? ? ? ?
REPOSITORY?????????????? TAG???????????????? IMAGE ID??????????? CREATED???????????? VIRTUAL SIZE ? ? ? ? ? ?
yuanhuan/newcontainer1?? latest????????????? 07b146e0be9e??????? 43 seconds ago????? 202.6 MB ? ? ? ? ? ?
centos?????????????????? 6.6???????????????? 8b44529354f3??????? 4 days ago????????? 202.6 MB ? ? ? ? ? ?
centos?????????????????? centos6.6?????????? 8b44529354f3??????? 4 days ago????????? 202.6 MB

?

3. 登錄docker,并將該鏡像push到docker倉庫:

[root@localhost ~]# docker login ? ? ? ? ??
Username: yuanhuan ? ? ? ? ? ?
Password: ? ? ? ? ? ??
Email: yuanhuan_2005@126.com ? ? ? ? ? ?
Login Succeeded ? ? ? ? ? ?
[root@localhost ~]# docker push yuanhuan/newcontainer1 ? ? ? ? ? ?
The push refers to a repository [yuanhuan/newcontainer1] (len: 1) ? ? ? ? ? ?
Sending image list ? ? ? ? ? ?
Pushing repository yuanhuan/newcontainer1 (1 tags) ? ? ? ? ? ?
f1b10cd84249: Image already pushed, skipping ? ? ? ? ? ??
8b44529354f3: Image already pushed, skipping ? ? ? ? ? ??
07b146e0be9e: Image successfully pushed ? ? ? ? ? ??
Pushing tag for rev [07b146e0be9e] on {https://cdn-registry-1.docker.io/v1/repositories/yuanhuan/newcontainer1/tags/latest}

?

成功之后,就可以登錄docker頁面,查看到剛剛制作的鏡像了。

?

二、使用dockerfile制作鏡像

創(chuàng)建dockerfile文件:dockerfile.txt,內(nèi)容如下:

FROM centos ? ? ? ? ??
MAINTAINER YH, http://yuanhuan.blog.51cto.com ? ? ? ? ? ?
RUN yum install passwd openssl openssh-server -y ? ? ? ? ? ?
RUN echo '123456' | passwd --stdin root ? ? ? ? ? ?
RUN ssh-keygen -q -t rsa -b 2048 -f /etc/ssh/ssh_host_rsa_key -N '' ? ? ? ? ? ?
RUN ssh-keygen -q -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N '' ? ? ? ? ? ?
RUN sed -i '/^session\s\+required\s\+pam_loginuid.so/s/^/#/' /etc/pam.d/sshd ? ? ? ? ? ?
RUN mkdir -p /root/.ssh && chown root.root /root && chmod 700 /root/.ssh ? ? ? ? ? ?
EXPOSE 22 ? ? ? ? ? ?
CMD ip addr ls eth0 | awk '{print $2}' | egrep -o '([0-9]+\.){3}[0-9]+';/usr/sbin/sshd -D

簡要說明:該dockerfile的主要目的是開啟sshd服務(wù),以便可以ssh登錄,并且設(shè)置了root用戶的密碼。

然后執(zhí)行下面的命令制作一個(gè)鏡像:

docker build -t centos:autosshd - < dockerfile.txt

成功之后就可以用docker images查看鏡像列表了。

?


兩種方式比較:


使用commit命令比較簡單,相當(dāng)于docker根據(jù)container內(nèi)部執(zhí)行的命令自動(dòng)生成了dockerfile,并進(jìn)行了build,比較適合對(duì)dockerfile不熟悉的用戶;

而dockerfile的方式顯得稍有點(diǎn)復(fù)雜,但是比較適合批量處理的場景。dockerfile一次寫入,多次運(yùn)行。


網(wǎng)易云容器服務(wù)為用戶提供了無服務(wù)器容器,讓企業(yè)能夠快速部署業(yè)務(wù),輕松運(yùn)維服務(wù)。容器服務(wù)支持彈性伸縮、垂直擴(kuò)容、灰度升級(jí)、服務(wù)發(fā)現(xiàn)、服務(wù)編排、錯(cuò)誤恢復(fù)及性能監(jiān)測等功能。點(diǎn)擊可免費(fèi)試用


免費(fèi)體驗(yàn)云安全(易盾)內(nèi)容安全、驗(yàn)證碼等服務(wù)

更多網(wǎng)易技術(shù)、產(chǎn)品、運(yùn)營經(jīng)驗(yàn)分享請(qǐng)點(diǎn)擊。




相關(guān)文章:
【推薦】?Jmeter入門實(shí)例

總結(jié)

以上是生活随笔為你收集整理的制作Docker镜像的两种方式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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