概述:
Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
Docker的应用场景
- Web 应用的自动化打包和发布。
- 自动化测试和持续集成、发布。
- 在服务型环境中部署和调整数据库或其他的后台应用。
- 从头编译或者扩展现有的 OpenShift 或 Cloud Foundry 平台来搭建自己的 PaaS 环境。
docker能为我们带来什么?
今天开发应用程序所需要的不仅仅是编写代码。在每个生命周期阶段,工具之间的多种语言,框架,体系结构以及不连续的接口都会带来极大的复杂性。Docker简化并加速了您的工作流程,同时使开发人员可以*选择每个项目的工具,应用程序堆栈和部署环境进行创新。
不论是Windows还是Linux的Docker容器均受Docker工具和API支持,可帮助您构建更好的软件:
- 更快地上板,并避免浪费时间尝试建立开发环境,启动新实例并制作生产代码副本以在本地运行。
- 启用多语言开发并使用任何语言,堆栈或工具,而无需担心应用程序冲突。
- 通过将应用程序,配置和依赖项打包到一个隔离的容器中,消除了环境不一致和“在我的机器上工作”的问题。
- 减轻对应用程序安全性的担忧
@
壹:docker安装
docker的安装其实非常简单,只需要下载他的安装包就能使用,但对于windows家庭版就不那么友好了,由于不支持Hyper-V,windows家庭版有两个选择:1、使用 docker toolbox来安装,非常简单,直接点下一步直到完成即可。本着不折腾不程序员的原则,显然我是会选择第二种。这才有了这篇教程。
如果你是windows专业版,企业版或教育版,请跳过第一步以及第三步。
一:使用docker toolbox安装
传送门
过程很简单,选择相应版本安装即可,反正我也没试过,略略略。
二:非docker toolbox安装
1、开启Hyper-V
新建.cmd文件,是用管理员身份运行,运行后重启电脑。
pushd "%~dp0"
dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hyper-v.txt
for /f %%i in ('findstr /i . hyper-v.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"
del hyper-v.txt
Dism /online /enable-feature /featurename:Microsoft-Hyper-V-All /LimitAccess /ALL
2、打开Hyper-V功能
打开你的控制面板,找到如下,勾选上Hyper-V功能功能模块。
3、伪装成专业版
打开注册表,找到HKEY_LOCAL_MACHINE\software\Microsoft\Windows NT\CurrentVersion
,点击CurrentVersion,在右侧找到EditionID,右键点击EditionID选择“修改“,在弹出的对话框中将第二项”数值数据“的内容改为Professional。
这里请注意,请不要改你注册表里的其他东西,很有可能会造成系统崩溃,改了这个没关系,只是骗骗系统,并且,它的值会在你下一次重启时修改回来,也不会影响你使用docker。
4、安装docker
安装地址:传送门
点击get docker
,即可下载,下载完成后直接安装即可。
贰:安装kitematic
Kitematic是一个 Docker GUI 工具,它可以更快速、更简单的运行Docker容器,虽然说我们安装的docker有简单的图形可视化,但Kitematic使用起来使一切变得更加的方便。
当然,你也可以选择不安装这个软件,使用起来也是没问题的。
1、下载软件
2、安装
他的安装很简单,你只需要把他解压到docker安装目录的同级目录即可。
叁:配置docker
docker其实不需要配置什么,唯一需要配置的就是他的镜像源和他的环境变量,因为它默认使用国外的镜像源,下载起来非常的慢,所以我们只需要配置国内的镜像源就可以愉快的玩耍了。
1、环境变量:在他安装的时候就自动配置好了,如果没有配置,就把他的C:\Program Files\Docker\Docker\resources\bin
与C:\ProgramData\DockerDesktop\version-bin
配置到path下即可,路径根据自己的来。
2、配置镜像源:打开docker,看到如下,输入registry-mirrors
的参数,你可以选择其一:
- Docker官方提供的中国镜像库:https://registry.docker-cn.com
- 七牛云加速器:https://reg-mirror.qiniu.com
- 中国科学技术大学:https://docker.mirrors.ustc.edu.cn
肆:docker初体验
一:创建容器方法一
以安装rabbitmq
为例,如果你要安装任何的镜像,可以到docker的官方仓库搜索:传送门
- 1、搜索镜像
使用仓库,搜索到的结果,Description一般会描述这个镜像,并且告诉你怎么启动它,tags就是这个软件所有版本的镜像,你只要找到你需要的版本就行了,右边的命令就是你下载镜像的命令,你只需要在命令行中输入即可。
除此之外你可以使用命令行搜索,命令:docker search rabbitmq
,其中official就是标志是否为官方版本,推荐使用官方的版本。
- 2、下载:
我需要的是rabbitmq:3.7-management-alpine,所以我的命令是:
docker pull rabbitmq:3.7-management-alpine
- 3、启动
启动之前,使用docker images查看abbitmq的images id
docker run -d -p 5672:5672 -p 15672:15672 --name rabbitmq {上面查看的images id}
-p为端口映射,容器端口映射到主机端口
-name为你的容器名称
-d为后台运行
- 4、查看启动
docker ps
- 5、相关命令:
1、查看所有镜像
docker images
2、查看正在运行的容器
docker ps
3、查看所有容器
docker ps -a
4、运行已存在的容器
docker start {id}
5、停止已存在的容器
docker stop {id}
6、删除容器 (必须先停止容器)
docker rm {容器id}
7、删除镜像
docker rmi {镜像id}
8、进入容器,推荐使用
docker exec -it {容器id} /bin/bash
9、进入容器
docker attach {容器id}
10、查看容器ip:
docker inspect --format='{{.Name}} - {{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq)
注:进入容器的后一种相对于前一种有着明显的缺陷:当多个窗口同时使用该命令进入该容器时,所有的窗口都会同步显示。如果有一个窗口阻塞了,那么其他窗口也无法再进行操作。
二:创建容器方法二
第二种方法就是使用kitematic来安装,使用kitematic安装变得非常简单,kitematic官方文档:传送门
打开软件,搜索相关镜像点击create即可。
除了安装容器之外,我们可以使用他来管理我们的容器例如停止、重启、进入容器等操作以及容器相关的一些设置等,并且,你可以在这里看到你的容器的日志。
作者有话
对我而言,作为学生,docker给我带来的最大的感受就是方便、快捷,节省了我电脑资源的开销以及跨平台可移植性,这无疑就是与dcoker采用的虚拟技术有关,以前安装一个应用需要去找安装包,安装、配置环境等等一系列操作,并且这个软件不管你是否用不用,都会占用你的一部分内存,自从我用了docker之后,所有的操作变得非常简单,简单到我只用cmd的几行命令就能轻松的使用。
至于他的平台可移植性,你在windows上的使用过的所有镜像、容器以及数据,他都能移植到linux等其他平台上,在重装系统后,相信大部分人都要安装自己所需要的软件、库等,而我只需要将docker的镜像复制过来,那么我又能拥有之前的数据了,并且,docker还提供了免费的仓库,供你去使用,你可以把自己的镜像、容器上传到你自己的仓库,等你使用的时候再去下载就可以使用了。
并且,在我使用的几个开发软件上都提供了docker的接口,你只需要简单的配置,就可以是你的开发工具连接到你的docker容器。
总的来说,docker绝对是值得学习的。