Docker入门

如题所述

第1个回答  2022-07-07

docker概念
docker意为码头工人(Dock Worker),即从船上装卸货物的人。这与它的性质非常贴切。

docker 官网是这样解释自己的,

目前阿里,京东,腾讯早已将docker应用到生产环境。

docker 历史

Docker 公司起初是一家名为 dotCloud 的平台即服务(Platform-as-a-Service, PaaS)提供商。

底层技术上,dotCloud 平台利用了 Linux 容器技术。为了方便创建和管理这些容器,dotCloud 开发了一套内部工具,之后被命名为“Docker”。Docker就是这样诞生的!

2013年,dotCloud 的 PaaS 业务并不景气,公司需要寻求新的突破。于是他们聘请了 Ben Golub 作为新的 CEO,将公司重命名为“Docker”,放弃dotCloud PaaS 平台,怀揣着“将 Docker 和容器技术推向全世界”的使命,开启了一段新的征程。

如今 Docker 公司被普遍认为是一家创新型科技公司,据说其市场价值约为 10 亿美元。Docker 公司已经通过多轮融资,吸纳了来自硅谷的几家风投公司的累计超过 2.4 亿美元的投资。

docker 特征

docker 核心概念

docker镜像是一系列文件,它起源于linux联合文件系统,通过分层实现镜像文件的存储。

容器本质上是一个进程,你可以把它想象成虚拟机但是它跟虚拟机完全不同。

docker仓库在hub.docker.com
,当然国内有163,网易蜂巢镜像。如果是private的就需要自己搭建镜像中心了。

docker工作流程

如上图,docker的工作流程大致是,

docker的网络
docker的关键在于容器内部与宿主机的通信,我们知道的有三种类型,Bridge 独立网络,Host与宿主机使用同一网络,None无网络。
参照: Docker四种网络模式 - (jianshu.com)

Docker pull[OPTIONS] NAME{:TAG} 镜像名称:版本

Docker images[OPTIONS] [REPOSITORY[:TAG]]

Docker run [OPTIONS] IMAGE [:TAG] [COMMAND][ARG…]

Docker rm NAME

docler exec -it backend-tomcat bash

以定制一个 nginx 镜像(构建好的镜像内会有一个 /usr/share/nginx/html/index.html 文件)

注意:Dockerfile 的指令每执行一次都会在 docker 上新建一层。所以过多无意义的层,会造成镜像膨胀过大。

所以可以以 && 符号连接命令,这样执行后,只会创建 1 层镜像。

具体的指令参考: Docker Dockerfile | 菜鸟教程 (runoob.com)

相似回答