Docker虚拟化技术与容器化部署
Docker基本概念、安装配置、容器化部署及常用命令。
前言
Docker是一种操作系统层面的轻量级虚拟化技术,由于隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容器(Container)。与虚拟机(VM)相比,Docker使用宿主机的操作系统,启动更快。每个容器只运行所需的应用程序和依赖项,资源消耗更少。Docker将操作系统、运行时环境、第三方软件库和依赖包、应用程序、环境变量、配置文件、启动命令等打包在一起,以便在任何环境中都能正常运行。
基本概念
Docker Daemon
Docker使用Client-Server架构,Docker Clinet和Docker Daemon之间通过Socket或Restful API进行通信。
Docker Daemon是服务端的守护进程,负责管理Docker的各种资源,接受并处理来自客户端的请求,然后将结果返回给客户端。
Docker镜像与容器
镜像(Images)是一个只读的容器模板,含有启动Docker容器所需的文件系统结构及内容。容器是Docker的运行实例,它提供了一个独立的可移植的环境。Docker以镜像和在镜像基础上构建的容器为基础,以容器开发、测试、发布的单元将应用相关的所有组件和环境进行封装,避免了应用在不同平台间迁移所带来的依赖问题,确保了应用在生产环境的各阶段达到高度一致的实际效果。
Docker仓库
Docker仓库(Registry)是用来集中存储和管理Docker镜像的地方。常用的有Dockerhub,用户可在此分享和下载Docker镜像,以实现镜像的共享和复用。
安装配置
Docker官网在国内需要vpn才能访问,可通过国内镜像地址下载。Docker的使用可通过命令行方式,也可通过图形化工具Docker Desktop。
Windows系统中启动Docker Desktop的先决条件
- 安装WSL
- 开启Hyper-V功能
容器化与Dockerfile
Dockerfile是Docker用来构建镜像的指令文件,Docker容器化包含以下三个部分
创建一个Dockerfile
使用Dockerfile构建镜像
使用镜像创建和构建容器
例如要使用node在alpine中运行一个index.js文件,对应的Dockerfile为
1 | FROM node:14-alpine |
常用命令
镜像管理
拉取镜像
docker pull [image-url]
构建镜像
docker build -t [image-name] .
运行镜像
docker run [image-name] .
查看所有镜像
docker image ls
docker images
上传镜像
docker push [image-url]
删除镜像
docker rmi [image-name] /
docker image rm [image-name]
从容器创建镜像
docker commit [container-name] [image-name]
容器管理
创建容器
docker create [image-name]
启动运行并命名容器
docker run --name [container-name] [image-name]
停止容器
docker stop [container-name]
删除容器
docker rm [container-name] /
docker container rm [container-name]