Docker中基于已執(zhí)行操作的container鏡像啟動(dòng)另一個(gè)container
我們常常會(huì)基于某個(gè)image來啟動(dòng)一個(gè)container,在這個(gè)container中我們可能會(huì)執(zhí)行某些操作,比如創(chuàng)建一個(gè)文件,但是當(dāng)這個(gè)container退出以后,如果我們以同一個(gè)的image啟動(dòng)了另一個(gè)container,在這個(gè)container中是看不到之前那個(gè)container創(chuàng)建的文件的,如果想讓后面的container看到之前那個(gè)container創(chuàng)建的文件,就要把之前那個(gè)container保存成一個(gè)鏡像,然后基于這個(gè)鏡像來啟動(dòng)后面的那個(gè)container,舉個(gè)簡(jiǎn)單的例子:(假設(shè)我們都是以root權(quán)限操作)
- docker run -i -t ubuntu:14.04 /bin/bash
該命令執(zhí)行完我們就基于ubuntu:14.04啟動(dòng)了一個(gè)container,在這個(gè)container中我們通過bash來與之(container)交流,同時(shí),這條命令執(zhí)行完我們會(huì)看到命令提示符變成了:
- root@0c4d0d394e7e:
后面的0c4d0d394e7e就是這個(gè)container的ID,接著我們可以在這個(gè)container中創(chuàng)建一個(gè)文件,如下:
- touch /root/test.c
然后我們退出這個(gè)container(執(zhí)行 exit),并通過以下命令來將這個(gè)container保存成一個(gè)鏡像:
- docker commit 0c4d0d394e7e ubuntu:new_change
接著我們可以通過docker images來查看當(dāng)前擁有的鏡像,發(fā)現(xiàn)多了一個(gè),其Tag就是new_change,接著我們可以以這個(gè)鏡像來啟動(dòng)另一個(gè)container,如下:
- docker run -i -t ubuntu:new_change /bin/bash
在該container中我們可以找到之前創(chuàng)建的test.c文件,如果我們以原來的ubuntu:14.04來啟動(dòng)后一個(gè)container,是找不到test.c的。