docker提供了兩種鏡像制作的方式,提高了使用的靈活性:
1.可以將更改后的容器提交,制作成鏡像(這是接下來要說明的)
2.通過Dockerfile來制作鏡像
下面通過一個例子來展示方法1.
本地有一個Ubuntu的鏡像,下面以這個為藍本,創建一個容器並在根目錄下添加一個test文件,然后做成鏡像。
[root@bw001 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/ubuntu latest a3cdd83cfdf0 4 months ago 124.8 MB
[root@bw001 ~]# docker run -it docker.io/ubuntu:latest bash
root@db076c4f8402:/# ls
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
root@db076c4f8402:/# touch test
root@db076c4f8402:/# ls
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys test tmp usr var
脫離容器保持運行,使用ctl+p ,q快捷鍵。可以看到剛起的容器繼續在運行
[root@bw001 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
db076c4f8402 docker.io/ubuntu:latest "bash" 25 seconds ago Up 24 seconds hopeful_darwin
下面將剛剛更改的容器commit成images
[root@bw001 ~]# docker commit -m "just a test" -a "huqian" db076c4f8402 docker.io/test
sha256:be8b1a5937dd6810290e663c98b13fcd677a48576a9a1b41eee613fbc47bfbc1
[root@bw001 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/test latest be8b1a5937dd 6 seconds ago 124.8 MB