创建容器
docker的容器是极其的轻量级的,可以秒级启动
新建容器:
root@S1:~# docker create -it ubuntu:14.04 5309f2e1216d0f19320941d04374477aa396ebfde9723fbd51b481aa74d6830c 创建完之后,docker 容器是处于一个停止的状态的,需要用docker start启动容器 root@S1:~# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 5309f2e1216d ubuntu:14.04 "/bin/bash" 4 seconds ago Created mystifying_einstein root@S1:~# docker start 5309 5309 root@S1:~# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 5309f2e1216d ubuntu:14.04 "/bin/bash" 21 seconds ago Up 2 seconds mystifying_einstein
启动容器有两种:
基于镜像新建一个容器并启动
基于终止状态的容器重新启动
我们依据下面一个输出hello world的容器,详细介绍执行过程
root@S1:~# docker run ubuntu /bin/echo "hello world" Unable to find image 'ubuntu:latest' locally latest: Pulling from library/ubuntu 898c46f3b1a1: Pull complete 63366dfa0a50: Pull complete 041d4cd74a92: Pull complete 6e1bee0f8701: Pull complete Digest: sha256:017eef0b616011647b269b5c65826e2e2ebddbe5d1f8c1e56b3599fb14fabec8 Status: Downloaded newer image for ubuntu:latest hello world 1.检查本地是否存在指定镜像,不存在就在公网拉去。 2.利用镜像创建并启动一个容器。 3.分配一个文件系统,并在只读的镜像层外面挂载一层可读层。 4.从宿主主机配置的网桥接口中桥接一个虚拟接口到容器中去。 5.从地址池配置一个IP地址给容器。 6.执行用户指定的应用容器。 7.执行完毕之后,容器被终止。
启动一个终端,允许用户交互:
root@S1:~# docker run -it ubuntu:14.04 /bin/bash root@a7c4c8ce3d40:/# cd /home/ root@a7c4c8ce3d40:/home# ls root@a7c4c8ce3d40:/home# pwd /home root@a7c4c8ce3d40:/home# ps -ef UID PID PPID C STIME TTY TIME CMD root 1 0 0 06:59 pts/0 00:00:00 /bin/bash root 17 1 0 07:00 pts/0 00:00:00 ps -ef 只运行了一个/bin/bash容器 所以相当的简介,轻量级的,
后台启动容器:-d(或者叫做守护进程)
root@S1:~# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES root@S1:~# docker run -it -d ubuntu:14.04 /bin/bash 5c47debb82ba9d555e78ea236c6bdeb015a433e3603282375d0799fade1a32ba root@S1:~# root@S1:~# root@S1:~# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 5c47debb82ba ubuntu:14.04 "/bin/bash" 3 seconds ago Up 2 seconds nervous_joliot