获取镜像
运行
快速开发平台有了镜像后,我们就能够以这个镜像为基础启动并运行医个容器。以上面的 ubuntu:16.04 为例,如果 我们打算启动里面的 bash 并且进行交互式操作的话可以执行下面的命令
$ docker run -it --rm ubuntu:16.04 /bin/bash root@e7009c6ce357:/# cat /etc/os-release NAME="Ubuntu" VERSION="16.04.4 LTS, Trusty Tahr" ID=ubuntu ID_LIKE=debian PRETTY_NAME="Ubuntu 16.04.4 LTS" VERSION_ID="16.04" HOME_URL="http://www.ubuntu.com/" SUPPORT_URL="http://help.ubuntu.com/" BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
列出镜像:
新建并启动
启动已终止容器
可以利用 docker container start 命令,直接将一个已经终止的容器启动运行。
容器的核心为所执行的应用程序,所需要的资源都是应用程序运行所必需的。除此之外,并没有其它 的资源。可以在伪终端中利用 ps 或 top 来查看进程信息。
root@ba267838cc1b:/# ps
PID TTY TIME CMD
1 ? 00:00:00 bash
11 ? 00:00:00 ps
可见,容器中仅运行了指定的 bash 应用。这种特点使得 Docker 对资源的利用率极高,是货真价实的 轻量级虚拟化。
后台运行
![后台运行 后台运行](http://www.hocode.com/images/006/QQ10.png)
终止容器
进入容器
$ docker run -dit ubuntu:16.04 69d137adef7a8a689cbcb059e94da5489d3cddd240ff675c640c8d96e84fe1f6 $ docker container ls CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 69d137adef7a ubuntu:16.04 "/bin/bash" 18 seconds ago Up 17 secon ds zealous_swirles $ docker exec -i 69d1 bash ls bin boot dev ... $ docker exec -it 69d1 bash root@69d137adef7a:/#
删除容器:
删除本地镜像:
$ docker image ls REPOSITORY TAG IMAGE ID CREATED SI ZE centos latest 0584b3d2cf6d 3 weeks ago 19 6.5 MB redis alpine 501ad78535f0 3 weeks ago 21 .03 MB docker latest cf693ec9b5c7 3 weeks ago 10 5.1 MB nginx latest e43d811ce2f4 5 weeks ago 18 1.5 MB
docker commit定制镜像
![定制镜像 定制镜像](http://www.hocode.com/images/006/QQ16.png)
$ docker diff webserver C /root A /root/.bash_history C /run C /usr C /usr/share C /usr/share/nginx C /usr/share/nginx/html C /usr/share/nginx/html/index.html C /var C /var/cache C /var/cache/nginx A /var/cache/nginx/client_temp A /var/cache/nginx/fastcgi_temp A /var/cache/nginx/proxy_temp A /var/cache/nginx/scgi_temp A /var/cache/nginx/uwsgi_temp
我们还可以用 docker history 具体查看镜像内的历史记录,如果比较 nginx:latest 的历史记录,我们
会发现新增了我们刚刚提交的这一层。
$ docker history nginx:v2 IMAGE CREATED CREATED BY SI ZE COMMENT 07e334659748 54 seconds ago nginx -g daemon off; 95 B 修改了默认?? e43d811ce2f4 4 weeks ago /bin/sh -c #(nop) CMD ["nginx" "-g" "daemon 0 B <missing> 4 weeks ago /bin/sh -c #(nop) EXPOSE 443/tcp 80/tcp 0 B <missing> 4 weeks ago /bin/sh -c ln -sf /dev/stdout /var/log/nginx/ 22 B <missing> 4 weeks ago /bin/sh -c apt-key adv --keyserver hkp://pgp. 58 .46 MB <missing> 4 weeks ago /bin/sh -c #(nop) ENV NGINX_VERSION=1.11.5-1 0 B <missing> 4 weeks ago /bin/sh -c #(nop) MAINTAINER NGINX Docker Ma 0 B <missing> 4 weeks ago /bin/sh -c #(nop) CMD ["/bin/bash"] 0 B <missing> 4 weeks ago /bin/sh -c #(nop) ADD file:23aa4f893e3288698c 12
转载请注明:文章转载自:快速开发框架 » 镜像和容器的基本操作
本文标题:镜像和容器的基本操作