1.3 Docker 基于已有镜像的容器创建镜像
运行docker run后,进入到该容器中,我们做一些变更,比如安装一些东西,然后针对这个容器进行创建新的镜像
把已经退出的容器启动起来
root@ubuntu:~# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
81678fc4d6c7 ubuntu:latest "/bin/bash" 35 minutes ago Exited (0) 32 minutes ago happy_newton
root@ubuntu:~# docker start 816
816
root@ubuntu:~# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
81678fc4d6c7 ubuntu:latest "/bin/bash" 36 minutes ago Up 6 seconds happy_newton
进入这个已经启动的容器
root@ubuntu:~# docker exec -it 816 /bin/bash
root@81678fc4d6c7:/#
root@81678fc4d6c7:/# apt-get install -y net-tools
root@81678fc4d6c7:/# apt-get install -y wget
查看网卡信息
root@81678fc4d6c7:/# ifconfig
eth0 Link encap:Ethernet HWaddr 02:42:c0:a8:2a:03
inet addr:192.168.42.3 Bcast:0.0.0.0 Mask:255.255.255.0
inet6 addr: fe80::42:c0ff:fea8:2a03/64 Scope:Link
UP BROADCAST RUNNING MTU:1500 Metric:1
RX packets:18287 errors:0 dropped:0 overruns:0 frame:0
TX packets:1814 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:27632961 (27.6 MB) TX bytes:125274 (125.2 KB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
创建新镜像
docker commit -m “change somth” -a “somebody info” container_id new_name (id可以通过docker ps -a获得)
root@ubuntu:~# docker commit -m "ubuntu_with_nettools_and_wget" -a "user1" 81678fc4d6c7 ubuntu_with_net
45d4c91e72cee9b9fc9b2b3f05542e33b96631fefea115fbf62ae2b827a27952
root@ubuntu:~# docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
ubuntu_with_net latest 45d4c91e72ce About a minute ago 176.7 MB
ubuntu v1 ac8b2a2b477b 37 hours ago 125.2 MB
test1 latest ac8b2a2b477b 37 hours ago 125.2 MB
test1 v1.0 ac8b2a2b477b 37 hours ago 125.2 MB
这个命令有些像svn的提交,-m 加一些改动信息,-a 指定作者相关信息,816这一串为容器ID,再后面为新镜像的名字。
评论区