Docker系列之Docker容器
Posted microheart
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker系列之Docker容器相关的知识,希望对你有一定的参考价值。
一、介绍
容器是独立运行的一个或一组应用,以及它们的运行态环境。对应的,虚拟机可以理解为模拟运行的一整套操作系统和排在上面的应用。
二、容器
2.1 启动容器
启动容器有两种方式,一种是基于镜像新建一个容器并启动,另一个是将终止状态的容器重新启动。
新建并启动:所需命令主要为 docker run。例如下面启动后输出一个“Hello World”,之后终止容器。
[email protected]0-15-ubuntu:~# docker run myimage /bin/echo ‘Hello World!‘ Hello World!
这跟本地直接执行/bin/echo ‘hello world‘ 几乎感觉不到任何区别。
下面的命令则启动一个bash终端,允许用户进行交互。其中 -t 选项让Docker分配一个伪终端并绑定到容器的标准输入上,-i 则让容器的标准输入保持打开。使用exit退出终端。
当利用 docker run来创建容器时,Docker在后台允许的标准操作包括:
- 检查本地是否存在指定的镜像,不存在就从公有仓库下载
- 医用镜像创建并启动一个容器
- 分配一个文件系统,并在只读的镜像层外面挂在一层可读写层
- 从宿主主机配置的网络接口中桥接一个虚拟接口到容器中去
- 从地址池配置一个ip地址给容器
- 执行用户指定的应用程序
- 执行完毕后容器被终止
启动已终止容器:docker start 命令,直接将一个已终止的容器启动运行。
2.2 查看容器
docker ps // 查看所有正在运行容器 docker stop containerId // containerId 是容器的ID docker ps -a // 查看所有容器 docker ps -a -q // 查看所有容器ID
2.3 终止容器
docker stop 加容器ID //终止容器 docker stop $(docker ps -a -q) // stop停止所有容器
2.4 守护态运行
更多时候,需要让Docker容器在后台以守护态形式运行。此时,可以通过添加 -d 参数来实现。如
[email protected]0-15-ubuntu:~# docker run -d myimage 755c54ec56e25c19295b08a86aef8b2a1a65753d62b80b50dce65ca96b719403
容器启动会返回一个唯一的id。
2.5 进入容器
在使用 -d 参数时,容器启动后会进入后台。某些时候需要进入容器进行操作,有很多种方法,包括使用 docker attach命令或 nsenter工具等。如:
[email protected]0-15-ubuntu:~# docker run -idt myimage //根据镜像创建容器 65763bc0fb47a05fe98529b5187588080f659f579e4c6c3e8044aca5c215a06a [email protected]-0-15-ubuntu:~# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 65763bc0fb47 myimage "/bin/bash" 42 seconds ago Up 42 seconds nostalgic_mccarthy 755c54ec56e2 myimage "/bin/bash" 6 minutes ago Exited (0) 6 minutes ago kickass_engelbart 5c05efb733f5 myimage "/bin/bash" 20 minutes ago Exited (0) 19 minutes ago sharp_varahamihira [email protected]-0-15-ubuntu:~# docker attach nostalgic_mccarthy
2.6 删除容器
使用 docker rm 来删除一个处于终止状态的容器,如果删除运行中的容器,可以添加 -f 参数。
docker rm $(docker ps -a -q) // remove删除所有容器。
以上是关于Docker系列之Docker容器的主要内容,如果未能解决你的问题,请参考以下文章