Docker入门操作

docker目录

/var/lib/docker目录存放着Docker镜像、容器以及容器的配置。
所有的容器都保存在/var/lib/docker/containers目录下。

查看Docker运行状态

docker info

第一个docker入门

 docker run -i -t ubuntu /bin/bash
 -i stdin 标准的输入
 -t 伪tty终端
 上面可能会出现: docker: error pulling image configuration这样的错误,是因为网络问题,解决办法是使用国内的docker镜像,这里使用daocloud的加速镜像:
 echo "DOCKER_OPTS=\"\$DOCKER_OPTS --registry-mirror=http://xxxxx.m.daocloud.io\"" | tee -a /etc/default/docker  
 原理:首先Docker会检查本地是否存在ubuntu镜像,如果本地还没有该镜像的话,那么Docker就会连接官方维护的Docker Hub Registry,查看Docker Hub中是否有该镜像。
 Docker一旦找到该镜像,就会下载该镜像并将其保存到本地宿主机中。 随后,Docker在文件系统内部用这个镜像创建了一个新容器。
 该容器拥有自己的网络、IP地址,以及一个用来和宿主机进行通信的桥接网络接口。最后,我们告诉Docker在新容器中要运行什么命令,本例中我们在容器中运行/bin/bash命令启动了一个Bash shell .当容器创建完毕之后,Docker就会执行容器中的/bin/bash命令,这时我们就可以看到容器内的shell了。

查看容器

docker ps -a 包含停止的和运行的
docker ps -l 最后一次的
docker ps 只有运行的
docker images 所有的镜像
docker ps -n x 显示最后x个容器
docker inspect container_name
docker inspect --format=’{{.State.Running}}’ container_name 返回指定内容

怎样给容器起一个名字?

Docker会为我们创建的每一个容器自动生成一个随机的名称。如果想为容器指定一个名称,而不是使用自动生成的名称,则可以用一name标志来实现.
比如:docker run --name ubuntu_container -i -t ubuntu /bin/bash

一个合法的容器名称只能包含以下字符:小写字母a-z、大写字母A-Z、数字0-9、下划线、圆点、横线(如果用正则表达式来表示这些符号,就是[a-zA-Z0-9_.-])

重启容器的几种方式?

docker start|restart container_name|container_id

停止容器

docker stop|kill container_name|container_id

创建长期运行的容器

守护式容器(daemonized container)没有交互式会话,非常适合运行应用程序和服务。
大多数时候我们都需要以守护式来运行我们的容器。

docker run --name ubuntu_daemon -d ubuntu /bin/sh -c "while true;do echo hello world;sleep 1;done"
-d 将容器放到后台执行
上面的命令是在后台一直循环输出hello world  

获得容器的日志

docker logs  [-f] container_id|container_name
-f 可以实时监控日志

docker logs一tail 10 container_name 获取日志的最后10行

docker logs --tail 0 -f container_name 读取最新的日志

docker logs --tail 0 -ft container_name 读取最新的日志并添加时间戳

查看容器内运行的进程

 docker top container_name

怎样在容器内部运行进程呢?

在Docker 1.3+通过docker exec命令在容器内部额外启动新进程。
在容器内运行的进程有两种类型:后台任务和交互式任务。
后台任务在容器内运行且没有交互需求,而交互式任务则保持在前台运行。
对于需要在容器内部打开shell的任务,交互式任务是很实用的。

docker exec -d ubuntu_daemon touch /etc/new_file
上面执行后在后台创建一个空的文件

docker exec -i -t ubuntu_daemon /bin/bash
上面执行后,打开shell

docker的自动重启?

docker run  --restart=always|on-failure:5 --name ubuntu_daemon 
-d ubuntu bin/sh -c "while true; do echo hello world; sleep  1;done"

--restart 检查容器的退出代码,确定是否重启,默认是不重启的
    always 一直自动重启,无论退出代码是什么.
    on-failure:5 容器退出代码为非0时,重启5次,其中:5可以不要.

删除停止的容器

docker rm container_id 删除指定的容器
docker rm `docker ps -a -q` 删除所有的容器(反引号)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Docker — 云时代的程序分发方式 要说最近一年云计算业界有什么大事件?Google Compute Engi...
    ahohoho阅读 15,643评论 15 147
  • 转载自 http://blog.opskumu.com/docker.html 一、Docker 简介 Docke...
    极客圈阅读 10,574评论 0 120
  • 一、Docker 简介 Docker 两个主要部件:Docker: 开源的容器虚拟化平台Docker Hub: 用...
    R_X阅读 4,416评论 0 27
  • 据网络发布,今年浙江高考本科录取出现了一种诡异现象:三本独立学院出档分646分!逆袭各大名校! 我...
    保持常态阅读 251评论 0 0
  • 你知道吗我做了一个全是星星的梦 我在星星中间像是没上发条的钟 我没有滴滴答答星星也不动 安安静静等着陌生人来这个时...
    NWEI阅读 239评论 0 2