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