本文目录导读:
随着云计算和微服务的普及,容器技术逐渐成为了一个热门话题,而在众多容器技术中,Docker无疑是最受欢迎的一种,Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows机器上,也可以实现虚拟化,本文将对Docker容器技术进行详细解读,并结合实际案例进行实践演示。
Docker简介
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows机器上,也可以实现虚拟化,Docker使用OS X/Linux的Cgroups技术,通过控制进程组来限制进程资源的使用(CPU、内存、磁盘I/O),实现了应用程序及其依赖项的隔离和轻量级部署。
Docker核心组件
1、Docker Engine:Docker的核心部分,负责创建、运行和管理容器。
2、Docker Image:Docker镜像是一个只读的模板,用于创建Docker容器,镜像包含了运行某个应用程序所需的所有内容,如代码、运行时环境、系统工具、库和设置等。
3、Docker Container:Docker容器是镜像的一个运行实例,它包含了应用程序及其所有依赖项,容器可以在宿主机上启动、停止、移动和删除。
4、Docker Registry:Docker Registry是一个存储和分发Docker镜像的服务,用户可以将自己的镜像推送到Registry,或者从Registry拉取镜像。
5、Docker Compose:Docker Compose是一个用于定义和运行多容器Docker应用程序的工具,通过编写一个YAML文件,可以配置应用程序的服务、网络和卷等信息,然后使用Docker Compose命令一次性启动所有服务。
Docker安装与配置
1、安装Docker Desktop:访问Docker官网(https://www.docker.com/products/docker-desktop)下载并安装适合自己操作系统的Docker Desktop版本。
2、配置Docker:安装完成后,根据提示完成基本设置,包括选择默认的运行时(如Windows或Linux)。
3、验证Docker安装:打开终端,输入docker --version
,查看是否显示出Docker的版本信息,以确认安装成功。
Docker基本操作
1、拉取镜像:使用docker pull
命令从Registry拉取镜像,拉取官方的Ubuntu镜像:docker pull ubuntu
。
2、查看镜像:使用docker images
命令查看本地已下载的镜像列表。
3、创建容器:使用docker run
命令创建一个新的容器,运行一个基于Ubuntu镜像的容器:docker run -it --name my-container ubuntu bash
。-it
表示交互式运行,--name
指定容器名称为my-container
,bash
表示在容器内执行bash命令。
4、查看容器:使用docker ps
命令查看当前正在运行的容器列表。
5、停止容器:使用docker stop
命令停止一个正在运行的容器,停止名为my-container
的容器:docker stop my-container
。
6、删除容器:使用docker rm
命令删除一个已经停止的容器,删除名为my-container
的容器:docker rm my-container
。
7、进入容器:使用docker exec
命令进入一个正在运行的容器,进入名为my-container
的容器:docker exec -it my-container bash
。-it
表示交互式运行。
8、退出容器:在容器内输入exit
命令退出容器。
9、导出镜像:使用docker save
命令将一个镜像导出为tar文件,导出名为my-image
的镜像:docker save -o my-image.tar my-image
,然后可以使用docker load
命令将tar文件导入为镜像:docker load -i my-image.tar
。
10、删除镜像:使用docker rmi
命令删除一个镜像,删除名为my-image
的镜像:docker rmi my-image
。
五、实战案例:使用Docker部署Node.js应用
1、在本地创建一个Node.js项目文件夹:mkdir nodejs-app && cd nodejs-app
。
2、在项目文件夹内初始化npm:npm init -y
,生成package.json文件。
3、安装项目依赖:npm install
,等待安装完成,此时会在项目文件夹内生成node_modules文件夹,里面包含了项目的依赖库。
4、在项目文件夹内创建一个名为Dockerfile的文件,编写如下内容:
使用官方Node.js镜像作为基础镜像 FROM node:14 将工作目录设置为/app WORKDIR /app 将package.json和package-lock.json复制到工作目录 COPY package*.json ./ 安装项目依赖 RUN npm install 将项目源代码复制到工作目录 COPY . . 暴露端口3000给外部访问 EXPOSE 3000
5、在项目文件夹内运行以下命令构建Docker镜像:docker build -t nodejs-app .
,等待构建完成,此时会生成一个名为nodejs-app的镜像。
6、在项目文件夹内运行以下命令启动一个基于nodejs-app镜像的容器:docker run -p 3000:3000 --name nodejs-container nodejs-app
,等待启动完成,此时可以通过访问http://localhost:3000/来查看Node.js应用运行情况。