-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
基本概念
docker 是一项虚拟化容器技术,它可以直接运行在宿主机器上,共享宿主机器上的资源。
docker 虚拟环境的内核其实就是一个 Linux VM。
docker 有三个核心概念:镜像(image)、容器(container)、仓库(registry)。
镜像
镜像可以理解为一个可独立运行环境的只读文件(或者说是描述文件),有点类似于windows操作系统镜像文件,里面不仅包含了windows操作系统,还安装了一些软件、应用,比如 IE浏览器、office套件之类的。
镜像是一个模板,可以基于某个镜像运行多个容器实例,就像 windows操作系统的镜像文件一样,可以被安装到多台电脑上并运行。
容器
Docker容器本质上是宿主机上的进程。
Docker 通过namespace实现了资源隔离,
通过cgroups实现资源限制,
通过写时复制机制(Copy-on-write)实现了高效的文件操作。
容器是从镜像创建的运行实例。
可以把容器看做一个简易的Linux环境,docker 就是利用容器来运行应用。
容器之间是彼此隔离的,对外界环境不感知。
镜像是只读的,容器在启动时创建一层可写层作为最上层。
仓库
为了方便管理镜像文件,可以把镜像放在仓库中,可以类比 git 仓库。
docker 仓库分为公共仓库和私有仓库。你可以从公共仓库拉取别的镜像直接使用,也可以把自己的镜像放到公共仓库共享出去。
常用操作
操作容器
容器可以 启动、开始、停止、删除。
- 启动容器
# BASH
docker run --rm -d -p 80:3000 ${your_name}/${image_name}:${tag}
# eg. docker run --rm -d -p 80:3000 zhangss2017/centos:0.1.0
# --rm 容器退出后随之将其删除
# -d 后台运行
# -p 指定端口映射 前者(80)为外界访问应用的端口,后者(3000)是Dockerfile里EXPOSE指定的端口
- 查看所有容器
# BASH
docker ps # 所有
docker ps -a # 所有正在运行的
- 删除所有停止的容器
# BASH
docker container prune -f
操作镜像
- build docker image
# BASH
docker build -t ${your_name}/${image_name}:${tag} .
- 查看所有镜像
# BASH
docker images
- 删除所有不使用的镜像
# BASH
docker image prune -f -a
- 同步镜像到 docker hub
# BASH
docker push ${your_name}/${image_name}:${tag}
Metadata
Metadata
Assignees
Labels
No labels