到這里docker系列教程已經(jīng)是第六期了,今天我們來(lái)給大家介紹一下docker鏡像的創(chuàng)建方法,還是老規(guī)矩喜歡的話記得收藏起來(lái)。
創(chuàng)建鏡像
當(dāng)我們從 docker 鏡像倉(cāng)庫(kù)中下載的鏡像不能滿足我們的需求時(shí),我們可以通過(guò)以下兩種方式對(duì)鏡像進(jìn)行更改。
1、從已經(jīng)創(chuàng)建的容器中更新鏡像,并且提交這個(gè)鏡像
2、使用 Dockerfile 指令來(lái)創(chuàng)建一個(gè)新的鏡像
創(chuàng)建Docker賬號(hào)
共享和發(fā)布鏡像時(shí)構(gòu)建鏡像中重要的環(huán)節(jié),可以將鏡像推送到Docker Hub或資金的私有Registry中。
這條命令會(huì)完成登錄,并將認(rèn)證信息報(bào)錯(cuò)起來(lái)供后面使用。個(gè)人認(rèn)證信息將報(bào)錯(cuò)到$HOME/ .dockercfg文件中.
用 commit 命令創(chuàng)建鏡像
可以想象是往版本控制系統(tǒng)里提交變更:首先創(chuàng)建一個(gè)容器,并在容器里做修改,就行修改代碼一樣,最后在講修改提交為一個(gè)新鏡像。
創(chuàng)建一個(gè)新容器命令:
sudo docker run -i -t ubuntu /bin/bash
或者之前創(chuàng)建好的myubuntu容器:
sudo docker start myubuntu
sudo docker attach myubuntu
注意:
docker run 后面指定的是一個(gè)鏡像、而docker start指定的是一個(gè)容器、docker run是利用鏡像生成容器,并啟動(dòng)容器,而docker start是啟動(dòng)一個(gè)之前生成過(guò)的容器
因?yàn)閡buntu官方鏡像中沒(méi)有軟件包的緩存文件,使用apt-get update更新即可,也可以修改源來(lái)配置。進(jìn)入myubuntu之后,然后安裝ssh。
運(yùn)行ssh需要目錄/var/run/sshd存在,創(chuàng)建啟動(dòng)服務(wù)
mkdir -p /var/run/sshd/usr/sbin/sshd -D &
然后可以看到已經(jīng)運(yùn)行,netstat命令可能也沒(méi)有,安裝即可apt-get install net-tools
然后復(fù)制需要登錄的公鑰信息(這里為本地主機(jī))。使用ssh-keygen可以生成。
復(fù)制id_rsa.pub的內(nèi)容到容器中的/root/.ssh/authorized_keys
創(chuàng)建ssh服務(wù)執(zhí)行文件,然后退出容器
vim /run.sh
chmod +x run.sh
使用docker commit保存修改的容器,然后運(yùn)行
docker commit CONTAINER ID ssh:ubuntu
docker run -d -p :22 ssh:ubuntu /run.sh
最后可以在宿主機(jī)上通過(guò)隨機(jī)生成的32768端口來(lái)訪問(wèn)登錄容器了:
使用dockerfile創(chuàng)建鏡像
創(chuàng)建一個(gè)目錄sshd_ubuntu,分別創(chuàng)建文件如下:
以上就是docker框架的鏡像創(chuàng)建方法了,下一期我們繼續(xù)介紹dockerfile的創(chuàng)建方法,如果你對(duì)Python來(lái)發(fā)感興趣的話不妨來(lái)千鋒Python培訓(xùn)班了解一下我們的Python培訓(xùn)課程,現(xiàn)在咨詢還能免費(fèi)領(lǐng)取Python學(xué)習(xí)資料,千萬(wàn)不要錯(cuò)過(guò)了。