概述
Docker是一个开放的软件开发和运行平台,它使应用程序与基础架构分离,以便于快速交付软件。在Docker中你可以像管理应用程序一样管理你的基础架构。利用 Docker 测试和部署代码,可以显著减少编写代码和在生产环境中运行代码之间的延迟。
安装与启动
Docker有两个版本:社区版Community Edition (CE) 和 企业版Enterprise Edition (EE)
Docker Community Edition(CE)主要是适合单个开发人员和小团队使用Docker容器进行应用程序的开发。
这里的所有操作均是在CentOS环境下执行的。
安装的方式有很多种,这里使用yum做演示。在CLI种输入如下命令来安装Docker。如果失败了请确认是否配置了淘宝镜像或网络代理等,这里不多赘述了。
yum install -y docker-ce
安装好之后,使用systemctl start命令来启动docker。
systemctl start docker
使用systemctl status来查看docker运行状态。
systemctl status docker
出现如下字样即为运行成功。
部署第一个应用
镜像与容器
容器是计算机上的沙盒进程,与主机上的所有其他进程隔离。总而言之,容器:
- 是镜像的可运行实例。您可以使用 DockerAPI 或 CLI 创建、启动、停止、移动或删除容器。
- 可以在本地计算机、虚拟机上运行或部署到云中。
- 是可移植的(可以在任何操作系统上运行)。
- 与其他容器隔离,并运行自己的软件、二进制文件和配置。
要创建一个镜像,我们需要在工程根目录配置一个Dockerfile文件,这个文件中保存了创建镜像时所需的配置信息。
它大概是这样的
# dockerfile
FROM node16-alpine3.15
RUN mkdir -p homeapp
WORKDIR homeapp
COPY package.json .
RUN npm install
COPY . .
EXPOSE 3000
ENTRYPOINT [npm, run]
CMD [serve]
接着,在CLI中转到工程根目录,执行docker build命令来构建镜像。
docker build -t helloworld
最后使用
docker run -dp 3000:3000 helloworld
-d表示在“分离”模式下(在后台)运行新容器。
-p表示在主机的端口 3000 到容器的端口 3000 之间创建映射。
这时访问http://localhost:3000。您应该会看到您的应用。
更新应用
更新应用需要注意,因为无法直接删除正在运行的容器,所以需要先将容器关闭并删除,接着再次执行build和run命令。