eagleshi 发表于 2015-4-18 06:18:46

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
  
页: [1]
查看完整版本: docker容器操作