文章目录
docker 容器管理
容器基础
容器概念
基于 docker 的虚拟化应用以容器的形式来部署和运行
container
由 docker 镜像创建的应用程序运行实例
- 镜像是静态的定义
- 容器是镜像运行的实体
- 容器实质也是进程,但与主机上的其他进程不一样,容器进程属于自己独立的名称空间内,运行在一个隔离的环境中,这点和虚拟机是不一样的
容器的基本信息
docker ps
:显示当前主机正在运行的容器列表
菜单 | 说明 |
---|---|
CONTAINER ID | 容器 ID(容器的唯一标识) |
IMAGE | 容器所用镜像的名称 |
COMMAND | 启动容器时的命令 |
CREATED | 容器的创建时间 |
STATUS | 容器运行的状态(up运行中,EXITED已停止) |
PORTS | 容器对外暴露的端口号 |
NAMES | 容器名称(ID不好记,用这个也可以,不设置默认就会生成一个NAMES) |
可写的容器层
容器=只读的镜像+可写的容器层
容器的磁盘大小
docker ps -s
可显示容器的大小
以上不包括:
- 容器的日志文件大小
- 容器的卷和绑定挂载
- 容器配置文件的大小
- 写入磁盘的内存大小
写时拷贝
Copy-on-Write
简称:CoW,又被叫做写时复制,是一个最高效率的文件共享和复制策略
- 文件、目录位于镜像中的底层,其他层需要读取,只需使用现有的文件即可,
- 其他层需要修改,文件会被复制到该层并修改
优势
- 共享有助于减少镜像大小
- 复制使容器效率更高:需要修改文件,从镜像各层搜索要修改的文件,从最高到最低,找到文件后将被添加到缓存中进行操作,对找到的文件复制到容器的可写层,任何修改只会修改这个可写层的文件,并且底层的只读的源文件对于容器是不可见的(从上往下俯瞰,看到的总是可写层的那个文件)
容器操作
容器创建和运行
docker create
:创建容器,但是不会运行
docker run
:创建并运行容器
命令语法:docker run [选项] 使用的镜像 [启动命令] [启动命令的参数]
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
常用的选项
选项(短格式为主) | 说明 |
---|---|
-a | 连接到标准输入、输出和标准错误,(现在基本不用了) |
-c | 设置容器 CPU 权重 |
-d | 指定容器运行于后台 |
–device | 添加主机设备到容器,相当于设备直通(用的也少) |
–dns | 指定容器的 DNS 地址 |
–dns-search | 指定容器的DNS搜索域名,写入容器的 /etc/resolv.conf文件中 |
–entrypoint | 覆盖镜像的入口点 |
-e | 指定容器的环境变量 |
–env-file | 指定容器的环境变量文件,文件格式为一行一个环境变量 |
–expose | 指定容器对外的端口暴露 |
-h | 指定容器的主机名 |
-m | 设置容器内存上限 |