Docker是什么
当我们需要将程序从一个电脑发到另一个电脑运行的时候,由于电脑的配置环境不相同导致程序可能很难运行起来。这时候我们就需要一种环境使两个电脑上运行程序的环境一致,可以使用虚拟机,但是虚拟机的体积太大,不够轻量,不好使用,这时候就可以使用Docker。
Docker 是一个开源的应用容器
引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器
中,然后可以发布该容器到任何流行的机器上,也可以实现虚拟化。
容器是完全使用沙箱机制
,相互之间不会有任何接口,更重要的是容器性能开销极低。
简而言之,Docker是一个应用打包、分发、部署
的工具。
- 打包: 就是把你软件运行所需的依赖、第三方库、软件打包到一起,变成一个安装包
- 分发: 你可以把你打包好的"安装包"上传到一个镜像仓库,其他人可以非常方便的获取和安装
- 部署: 拿着"安装包"就可以一个命令运行起来你的应用,自动模拟出一摸一样的运行环境,不管是在Windows/Mac/Linux。
Docker的应用方式
常规应用开发部署方式:自己在Windows 上开发、测试–>到Linux服务器配置运行环境部署。
就会出现很多问题: 我机器上跑都没问题,怎么到服务器就各种问题了
用Docker开发部署流程: 自己在Windows 上开发、测试–>打包为Docker镜像
(可以理解为软件安装包)…->各种服务器上
只需要一个命令部署好
优点:确保了不同机器上跑都是一致的运行环境,不会出现我机器上跑正常,你机器跑就有问题的情况。
官网
下载官网:https://www.docker.com/
安装完成之后需要进行环境配置:
- 命令行安装 Linux 子系统(这步可能不需要,因为 docker 安装时有说自动安装 wsl)
wsl --install -d Ubuntu
- 设置开机启动 Hypervisor
bcdedit /set hypervisorlaunchtype auto
Docker的用途
快速安装软件
使用Docker可以加快软件的安装速度
没有系统兼容问题, Linux的专享软件可以照常在Windows上运行
多版本共存
eg: 安装redis
在Docker的镜像库中搜索相应的软件,根据命令进行安装:
Docker的镜像库: https://hub.docker.com/
运行如上命令就可以使用Docker运行一个容器。
docker run -d -p 6379:6379 --name redis redis:latest
- docker run : docker运行一个容器
- -d : 在后台运行
-p 6379:6379 :端口的暴露,把容器的6379端口号暴露到宿主机的6379
–name redis : 给容器命个名
redis:latest :软件源使 redis的最新版本
创建自己的Docker镜像
Dockerfile
https://blog.youkuaiyun.com/AtlanSI/article/details/87892016
编译
编译 docker build -t test:v1
-t 设置镜像名字和版本号
运行
运行 docker run -p 8080:8080 --name test-hello test:v1
-p 映射容器内端口到宿主机
–name 容器名字
-d 后台运行