🚀
🚀
🚀
🚀
Docker — 从入门到实践
搜索文档…
🚀
🚀
🚀
🚀
Docker — 从入门到实践
前言
修订记录
如何贡献
Docker 简介
基本概念
安装 Docker
使用镜像
操作容器
启动
守护态运行
终止
进入容器
导出和导入
删除
访问仓库
数据管理
使用网络
高级网络配置
Docker Buildx
Docker Compose
Swarm mode
安全
底层实现
Etcd 项目
Fedora CoreOS
Kubernetes - 开源容器编排引擎
部署 Kubernetes
Kubernetes 命令行 kubectl
容器与云计算
实战案例 - 操作系统
实战案例 - CI/CD
在 IDE 中使用 Docker
podman - 下一代 Linux 容器工具
附录
由
GitBook
提供支持
启动
启动容器有两种方式,一种是基于镜像新建一个容器并启动,另外一个是将在终止状态(
exited
)的容器重新启动。
因为 Docker 的容器实在太轻量级了,很多时候用户都是随时删除和新创建容器。
新建并启动
所需要的命令主要为
docker run
。
例如,下面的命令输出一个 “Hello World”,之后终止容器。
$
docker
run ubuntu:18.04 /bin/echo
'Hello world'
Hello world
这跟在本地直接执行
/bin/echo 'hello world'
几乎感觉不出任何区别。
下面的命令则启动一个 bash 终端,允许用户进行交互。
$
docker
run -t -i ubuntu:18.04 /bin/bash
[email protected]
:/
#
其中,
-t
选项让Docker分配一个伪终端(pseudo-tty)并绑定到容器的标准输入上,
-i
则让容器的标准输入保持打开。
在交互模式下,用户可以通过所创建的终端来输入命令,例如
[email protected]
:/
# pwd
/
[email protected]
:/
# ls
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
当利用
docker run
来创建容器时,Docker 在后台运行的标准操作包括:
检查本地是否存在指定的镜像,不存在就从
registry
下载
利用镜像创建并启动一个容器
分配一个文件系统,并在只读的镜像层外面挂载一层可读写层
从宿主主机配置的网桥接口中桥接一个虚拟接口到容器中去
从地址池配置一个 ip 地址给容器
执行用户指定的应用程序
执行完毕后容器被终止
启动已终止容器
可以利用
docker container start
命令,直接将一个已经终止(
exited
)的容器启动运行。
容器的核心为所执行的应用程序,所需要的资源都是应用程序运行所必需的。除此之外,并没有其它的资源。可以在伪终端中利用
ps
或
top
来查看进程信息。
[email protected]
:/
# ps
PID TTY TIME CMD
1
? 00:00:00
bash
11
? 00:00:00
ps
可见,容器中仅运行了指定的 bash 应用。这种特点使得 Docker 对资源的利用率极高,是货真价实的轻量级虚拟化。
以前
操作容器
下一个
守护态运行
最近更新
5mo ago
复制链接
在 GitHub 上编辑
大纲
新建并启动
启动已终止容器