189 8069 5689

Docker的管理操作有哪些

本篇内容主要讲解“Docker的管理操作有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Docker的管理操作有哪些”吧!

站在用户的角度思考问题,与客户深入沟通,找到甘谷网站设计与甘谷网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都做网站、成都网站制作、企业官网、英文网站、手机端网站、网站推广、域名与空间、虚拟主机、企业邮箱。业务覆盖甘谷地区。

容器是一个打包了应用和服务的环境。它是一个轻量级的虚拟机,每一个容器都由一组特定的应用和必要的依赖组成。

特别说明:在windows上使用git-bash来运行docker命令时,如果使用了-i -t参数会报错:

$ docker run -it --name my docker.io/centos
the input device is not a TTY.  If you are using mintty, try prefixing the command with 'winpty'

错误信息已明确说明要使用winpty来运行。即:

winpty docker run -it --name my docker.io/centos

1、容器的管理操作

1.1创建容器

对于容器常见的命令包括:创建、查看、启动、终止(停止)、删除。

创建容器可以使用docker create和docker run,它们的区别是,docker create创建容器完成后,容器处于停止状态,而docker run创建容器后同时启动容器(相当于执行了:docker create -> docker start)。

docker create 镜像名称

比如:docker create ubuntu  //不带 “:版本号” 时将使用官方最新的镜像。

使用docker ps 可以查看当前正在运行的容器,使用docker ps -a 可以查看所有容器,包括运行中和未运行的容器。

docker run 可以创建交互型容器和后台型容器。

docker run -i -t --name=inspect_shell ubuntu /bin/bash //将创建交互型容器

docker run -d --name=daemon_while ubuntu /bin/bash -c 
"while true;do echo hello world;sleep 1;done" //将创建后台型容器

上面--name参数的名称必须是唯一的不能重复。

创建容器时首先会搜索本地是否存在该镜像,如果不存在就从公有仓库下载,否则直接使用本地镜像创建容器,容器的文件系统是在只读的镜像文件上增加一层可读写的文件层,并通过网桥的方式将该网络接口桥接到宿主主机上去,然后该虚拟网络接口分配一个IP地址。

1.2 查看容器

使用docker ps 命令即可,可以跟不同的参数,具体使用查看帮助即可:docker ps --help

docker ps  //只查看当前运行中的容器

docker ps -l  //列出最后创建的容器

docker ps -n=x  //查看最后创建的x个容器

结果中的状态是Exited时,括号时的数字为0时正常退出,其它值都为异常退出。

1.3启动容器

通过docker run 创建的容器直接进行运行状态,而使用docker create创建的容器需要使用docker start来启动它。

docker start 容器ID或容器名称

docker run --restart=always  --name docker_restart -d ubuntu /bin/sh -c 
"while rue;do echo hello world;sleep 1;done"

docker run ubuntu echo "Hello docker" //此容器输出后马上就停止了
docker ps -a 可以查看到容器的ID和名称,要想再次启动此容器而不是创建一个新的容器可以使用下面的方式:
docker start -i 容器ID //多了个-i参数,表明输出到终端,如果不带-i参数是看不到Hello docker输出的。

restart为always是不管容器返回码是什么都会尝试重启容器,另外可以设置成--restart=on-failure:5 来设置非0返回码时重启尝试的次数。

1.4终止容器

正常退出容器使用 docker stop 容器名称或容器ID,另外可以使用docker kill 强制退出容器。

docker stop 容器名称或容器ID
docker kill 容器名称或容器ID

1.5删除容器

docker rm 容器ID或容器名称 //只能删除未运行的容器

docker rm -f 容器ID或容器名称 //强制删除,运行中的容器可将删除

docker rm `docker ps -a -q` //批量删除所有容器,-q参数只列出容器的ID

2、容器内信息获取和命令执行

2.1依附容器

依附容器命令只能用在交互型容器中,就是以 -i -t 参数运行的容器,可以依附若干的终端,而且多个终端操作是同步的,就是你在其中一个终端输入了什么,在其它的终端也将显示什么,退中一个终端使用exit退出,所有依附的终端都将退出。

docker run -i -t ubuntu /bin/sh

然后再开另一个终端使用

docker attach ubuntu 
//即可以进入交互界面,这样就会有两个终端,而且是同步的。此命令目前输入完后必须按两次回车才正常出现交互界面。

后台型容器是无法使用此命令依赖终端的。

ps:如果只是要进入到运行中的容器,而且容器也不一定是使用 -i -t运行的,可以使用下面的命令:

docker exec -it 容器ID或名称 bash

2.2查看容器日志

交互型容器可台通过依附命令直接进入查看日志,而后台型容器可以通过docker logs 命令来查看容器日志。

docker run -d --name =daemon_logs ubuntu /bin/bash -c "for((i=0;1;i++));do echo $i;sleep 1;done;" 
//注意这里要使用双引号

docker logs -f deamon_logs //-f 实时查看容器日志

docker logs -f --tail=x daemon_logs //只实时查看最后x行日志

docker logs -f --tail=5 -t daemon_logs //-t查看日志产生的时间

 2.3查看容器进程

docker top可以查看容器内正在运行的进程

docker top 容器ID或容器名称

 2.4查看容器信息

docker inspect用于查看容器的配置信息,包括容器名称、环境变量、运行命令、主机配置、网络配置和数据卷配置等。

docker inspect 容器ID或容器名称

详细使用可以查看帮助,docker inspect --help

2.5容器内执行命令

在容器启动的时候,通常需要指定需要执行的程序,然而有时候我们需要在容器运行之后中途启动另一个程序 。从Docker 1.3开始,我们可以使用docker exec命令在容器中运行新的任务。它可以创建两种任务:后台型任务和交互型任务。

docker exec -d daemon_dave touch /etc/new_config_file //后台型任务

docker exec -i -t daemon_dave /bin/bash //交互型任务,这个和创建交互型容器一样。

注意:运行此命令容器都必须是运行中

 3、容器的导入和导出

用户不仅可以把容器提交到公共服务器上,也可以将容器导出到本地文件系统中,再需要的时候可以重新导入到Docker运行环境中。

容器导出:

docker run -i -t --name=inspect_import ubuntu /bin/bash

然后对容器按需要修改,安装需要的软件等,完成后执行下面的命令导出到本地系统中。

docker export inspect_import > my_container.tar

容器导入:

cat my_container.tar |docker import - imported:container
//imported为镜像名称,container为镜像标签(tag)

还可以从url导入网络上的容器:
docker import url res:tag

导入成功后,使用docker images 命令可以查看导入的镜像。

到此,相信大家对“Docker的管理操作有哪些”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!


文章标题:Docker的管理操作有哪些
转载来于:http://jkwzsj.com/article/johsog.html

其他资讯