【有手就行】:从无到有在Win10上安装docker环境
前言
最开始的时候,我们一般都是通过Apache或者直接运行jar包来启动java项目,后面逐渐开始有人发现容器的好处,都改用docker来运行项目,这样不光版本发布简单,也方便统一运行环境,方便移植。它的好处这里就不做详细介绍了,需要的可自行百度。今天就是教大家怎样在自己的windows电脑上也安装上docker并运行项目
简单介绍
Docker是一个开源的平台 ,用于开发、交付和运行应用程序。它能够在Windows,macOS,Linux计算机上运行,并将某一应用程序及其依赖项打包至一个容器中,这些容器可以在任何支持Docker的环境中运行。容器彼此隔离,但可以通过特定的通道相互传递信息
准备工作
环境准备
Docker某些功能需要依赖Linux内核,所以Docker一般都是运行在Linux环境上;要想在windows上正常安装运行docker,需要通过windows上的虚拟化技术来实现。
启用虚拟化支持
打开控制面板 -> 程序 -> 启用或关闭Windows功能 -> 勾选 【适用于Linux 的 Windows 子系统】【虚拟机平台】-> 确定
配置成功后,需要重启电脑。
重启后,打开任务管理器,选择性能,如果虚拟化显示已启用,说明配置成功了
下载安装Linux 内核更新包
按个人实际情况下载
–>链接
下载下来后正常安装完成即可
下载安装Docker Desktop
可以选择从官网下载,但是国内网络一般情况下是访问不了docker的官网的,所以只有另辟蹊径了。
注:因为安装过程默认是安装在C盘,这样后续下载镜像就会非常占用空间,所以在这之前,建议先使用mklink的方式创建软连接。
在安装Docker前,在你想自定义的磁盘中,创建相应的文件夹,比如 D:\Docker,使用 mklink /j “原文件夹路径” “目标文件夹路径” 进行软连接的创建;
mklink /j “C:\Program Files\Docker” “D:\Docker”
下载下来后,双击打开,点击ok自动安装
安装成功后打开长这样
创建docker的个人镜像仓库
怎么搭建Nexus可以参考另外一篇博客,这里讲一下在nexus上创建docker镜像仓库
管理员登录搭建好的Nexus,选择仓库,点击创建
点击docker(hosted)
设置仓库名,设置启动http端口,比如9999,勾选允许匿名pull权限,然后点击【Create Repository】开始创建docker的镜像仓库
创建成功后,还需要激活docker,如下点击操作
点击后 右边激活列表就会出现Docker Bearer Token Realms,最后点击 Save
配置Docker镜像仓库
由于网络问题,需要配置一下镜像加速器,这里以阿里云的为例。
登录阿里云获取镜像加速器地址
打开Docker Desktop 设置项,配置镜像仓库地址
但是最近国内很多加速器都没法用了,所以多准备了几个,都配置上;
配置的个人仓库地址 一定要用ip地址,不能用127.0.0.1,切记 切记 切记
1 | "registry-mirrors": [ |
最后点击 【Apply & Restart】 等待docker自动配置并重启
查看是否配置成功 运行cmd命令 docker info
下载镜像
配置成功后返回到首页运行界面上的命令
能成功下载大概就是这个样子,最后浏览器打开 localhost:80 就能看到刚下载并运行的项目镜像了。
上传镜像至个人仓库
以上面下载的docker/getting-started镜像为例
先查看已有的镜像
1 | docker images |
给镜像打上标记
docker tag + 镜像名:tag + ip:docker镜像仓库端口 + 仓库名 + 镜像名:[自定义tag]
1 | docker tag docker/getting-started 192.168.1.10:9999/docker-leezijin/docker/getting-started:person1.0 |
登录个人仓库
1 | docker login 192.168.1.10:9999 -u 账户 -p 密码 |
如果上面没有在docker配置里配置个人仓库地址【insecure-registries】,登录的时候就会报错,要求使用https
push镜像至仓库
1 | docker push 192.168.1.10:9999/docker-leezijin/docker/getting-started:person1.0 |
能看到镜像已上传至仓库
下载刚上传的镜像
1 | docker pull 192.168.1.10:9999/docker-leezijin/docker/getting-started:person1.0 |