本篇内容主要讲解“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的管理操作有哪些”有了更深的了解,不妨来实际操作一番吧!这里是天达云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!