Skip to content

docker 基本概念和常用操作 #4

@Sukiey

Description

@Sukiey

基本概念

docker 是一项虚拟化容器技术,它可以直接运行在宿主机器上,共享宿主机器上的资源。
docker 虚拟环境的内核其实就是一个 Linux VM。

docker 有三个核心概念:镜像(image)、容器(container)、仓库(registry)。

镜像

镜像可以理解为一个可独立运行环境的只读文件(或者说是描述文件),有点类似于windows操作系统镜像文件,里面不仅包含了windows操作系统,还安装了一些软件、应用,比如 IE浏览器、office套件之类的。

镜像是一个模板,可以基于某个镜像运行多个容器实例,就像 windows操作系统的镜像文件一样,可以被安装到多台电脑上并运行。

容器

Docker容器本质上是宿主机上的进程。

Docker 通过namespace实现了资源隔离,
通过cgroups实现资源限制,
通过写时复制机制(Copy-on-write)实现了高效的文件操作。

容器是从镜像创建的运行实例。

可以把容器看做一个简易的Linux环境,docker 就是利用容器来运行应用。

容器之间是彼此隔离的,对外界环境不感知。

镜像是只读的,容器在启动时创建一层可写层作为最上层。

仓库

为了方便管理镜像文件,可以把镜像放在仓库中,可以类比 git 仓库。

docker 仓库分为公共仓库和私有仓库。你可以从公共仓库拉取别的镜像直接使用,也可以把自己的镜像放到公共仓库共享出去。

docker hub

常用操作

操作容器

容器可以 启动、开始、停止、删除。

  • 启动容器
# 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

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions