docker容器操作


Docker运行容器需要一个命令

sudo docker run

注:运行容器分为两种,一种是新建一个容器运行,另一种是运行已经终止了的容器

最简单的docker应用

sudo docker run ubuntu:14.04 /bin/echo 'Hello world'

这里指定一个镜像:ubuntu 14.04。这是我们容器中运行的来源。docker称这个为镜像

当你指定一个镜像,docker会查看这个镜像是否有一次加载到你的docker主机上,如果没有发现,docker就会在镜像仓库Docker Hub下载公共镜像

只要"hello word"被输出,容器就会停止

注意:如果出现找不到index.docker.io或者registry-1.docker.io等,可以ping一下,然后把得到的IP加入hosts中,有点奇怪


 

运行一个交互式的容器

sudo docker run -t -i ubuntu:14.04 /bin/bash


创建一个容器,让它以守护进程的模式运行

sudo docker run -d ubuntu:14.04 /bin/sh -c "while true; do echo hello world; sleep 1; done"

-d 标识告诉docker运行容器在后台模式运行

没有看到输出的 hello world ,而是输出了一个很长的字符串,

这个长的字符串叫做容器ID。它是容器的唯一标识,所以我们可以使用它。


查看docker正在运行的容器

sudo docker ps

这里的CONTAINER ID和NAMES则是自动分配的短ID和名称,这个短ID和上面的长ID作用是一样的

docker会在容器启动的时候自动给容器命名,当然也可以自己给容器指定名称

那么hello world 的输出到哪儿了?

sudo docker logs tender_mclean

停止正在运行的后台容器

sudo docker stop tender_mclean


之前的一些例子都没什么实际的作用,运行一个web容器

sudo docker run -d -P training/webapp python app.py

-P 标示通知Docker所需的网络端口映射从主机映射到我们的容器内

我们指定了training/web镜像。这个预先建立好的镜像被我们创建后就已经包含了简单的python应用程序环境

看已经停止的容器请 -a 标示

在这种情况下,docker开放了5000端口(默认Phtyon端口)映射到主机端口49155上

Docker可以配置绑定网络端口。在最后一个例子中-P标示,是-p 5000的快捷方式,-p 5000可以使端口5000映射到外部的端口(49000到49900端口)。我们也可以指定 -p 标示来指定端口

sudo docker run -d -p 5000:5000 training/webapp python app.py

测试(用浏览器打开或者CURL)


使用docker port可以指定容器ID或者名字映射到主机端的端口号

sudo docker port kickass_mayer 5000

在这种情况下,我们看到端口5000映射到容器外的主机端口


 

查看web应用容器日志

sudo docker logs -f kickass_mayer

-f 即 tail -f 的意思,查看容器的标准输出


 

查看容器进程

sudo docker top kickass_mayer


Docker的底层信息。它会返回一个JSON文件记录docker容器的配置和状态信息

sudo docker inspect kickass_mayer

对我们想要的信息缩小显示,例如,返回容器的IP地址

sudo docker inspect -f '{{ .NetworkSettings.IPAddress }}'  kickass_mayer


 

停止容器

sudo docker stop kickass_mayer

重启容器

sudo docker start kickass_mayer

删除容器

sudo docker rm kickass_mayer

注意:不能删除正在运行的容器,这样会保护意外删除可能需要的运行中容器


 

进入容器

如果一个容器后台运行了,但是想进入

sudo docker attach container_name

导出容器

sudo docker export 7691a814370e > ubuntu.tar

导入容器

cat ubuntu.tar | sudo docker import - test/buntu:v1.0

也可以通过URL

sudo docker import http://example.com/exampleimage.tgz example/imagerepo

 

posted @ 2015-01-19 14:16  Daem0n  阅读(2402)  评论(0编辑  收藏  举报