前言
记录一些docker的一些使用方案和使用过程遇到的问题和解决方法
入门
http://guide.daocloud.io/dcs/docker-9152673.html
https://www.ionluo.cn/blog/posts/c402862b.html
使用 docker 构建前端统一开发环境
开发新项目常见情形
- git clone 下载项目源码
- npm install 下载项目依赖
- npm run build 构建项目
存在的问题:
- 操作系统版本问题,如macos win 和 linux 文件名大小写问题
- 运行环境差异,node-sass版本和node版本问题
- 安装的第三方包版本不匹配报错
- 开发环境和测试环境割裂
想要达到的效果
- 在不同的开发机上表现一致,与开发机系统无关
- 本地安装的基础环境(主要是node版本)不影响项目运行
- 非前端环境一键配置
- 其余人接手项目后,可以快速搭建好环境并运行项目
两个基本概念
镜像(image):一套极简的 os + 基础运行环境
容器(container):运行的镜像实例
docker 简单命令
拉取镜像
1 | docker pull docker/getting-started |
运行容器
1 | docker run -d -p 80:80 docker/getting-started |
查看运行中的容器
1 | docker ps |
进入容器
1 | docker exec -it <the-container-id> /bin/sh |
停止运行容器
1 | docker stop <the-container-id> |
删除非运行状态下的容器
1 | docker rm <the-container-id> |
停止并删除容器
1 | docker rm -f <the-container-id> |
使用 Dockerfile 构建镜像
Dockerfile.api
1 | FROM node:12-alpine |
Dockerfile.app
1 | FROM node:12-alpine |
构建镜像
1 | docker build -t NeteaseCloudMusicApi . |
运行 NeteaseCloudMusicApi 镜像
1 | docker run -dp 3000:3000 NeteaseCloudMusicApi |
至此,本地已启动了服务
使用 docker-compose 启动
1 | version: "3.7" |
启动项目
1 | docker-compose up |
win10安装docker
https://blog.csdn.net/zzq060143/article/details/91050272
Centos7安装docker
1 | curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun |
参考:这里
docker 搭建node+vue应用
- 使用nginx+vue打包好静态页面
- 使用node+vue直接跑起来
1 | # 先查看当前node的版本(v14.0.0) |
这里不仅仅对于win10家庭版,window系统只要不带
Hyper-V
功能就可以使用该方式。另外,对于需要使用虚拟机的同学,如Oracle VM VirtualBox
或者VMware Workstation
,也建议使用该方式安装docker,否则虚拟机无法打开。
Docker可以支持在mac、windows、linux上安装。
但是在windows系统中Docker目前仅有win10专业版和企业版的安装包,win7/win8/win10家庭版需要通过docker toolbox来安装。
下载地址:http://mirrors.aliyun.com/docker-toolbox/windows/docker-toolbox/
Docker的有CE和EE版,CE为免费版,EE由公司支持的付费版,在此选择最新CE版本
安装
Docker安装比较简单,直接双击下载好的DockerToolbox
的exe
文件,然后按照默认选项执行安装,安装过程中会提示安装插件,点击同意即可。安装完成后会在桌面上生成三个图标,如下所示:
双击桌面上的Docker Quickstart Terminal
l图标,进入Docker客户端。
安装遇到的问题
双击桌面上的
Docker Quickstart Terminal
l图标,提示找不到应用程序。出现这个问题是由于之前装过Git,安装Docker默认生成的快捷方式中,Git的路径是
C:\Program Files\Git\bin\bash.exe
。而之前安装的Git并不是这个路径,所以就会报找不到应用程序的问题。此时只要把Git的路径改为自己之前安装的路径即可,比如我的就在D:\Program Files\Git\bin\bash.exe
,修改后的Target为如图所示(后面的路径不用修改):
error: Raw-mode is unavailable courtesy of Hyper-V
详情见:安装docker toolbox发生问题,排错经历 Raw-mode is unavailable courtesy of Hyper-V
必须保证以下两点大前提:
① 在使用 VirtualBox 时不能开启 Hyper-V,这一点和 docker 不同,docker 必须要启用它。查看 Hyper-V 是否 关闭
控制面板→程序→程序和功能→启用或关闭Windows功能 不勾选 即为关闭,’ 确定 ‘ 后需要重启计算机才会生效② 保证开启了虚拟化 VT-X
查看虚拟化
VT-X
是否开启
`任务管理器→性能→CPU→虚拟化`
开启需要在bio中设置。
双击桌面上的
Docker Quickstart Terminal
图标后一直卡在下载boot2docker.iso
镜像由于该镜像在github下载,国内下载很慢,所以一不定能下载下来。可以通过在窗口中复制下载链接,通过其他方式下载后放到
C:\Users\[用户名]\.docker\machine\cache\
目录。然后关闭窗口,重新双击桌面上的Docker Quickstart Terminal
图标运行。PS: 这里
boot2docker.iso
镜像在DockerToolbox
的安装目录中也存在,但是貌似不是最新的,直接复制这里的过去的话,需要断网打开Docker Quickstart Terminal
,否则会检查去下载最新版本的boot2docker.iso
镜像。另外,还可以通过修改脚本的方式,加载指定位置的镜像,可参考:https://blog.csdn.net/Blue_Tear/article/details/104147794
启动虚拟机失败:error: Details: code E_FAIL (0x80004005), component MachineWrap, interface IMachine
详情见:https://forums.virtualbox.org/viewtopic.php?t=95246
根据上文,总结有三个方法解决。
- 使用virtualBox的v6.0.10
- 安装virtualBox时需要用管理员身份运行
- 使用virtualBox的修复程序
我这里修改virtualBox的版本解决,下载地址:https://mirrors.tuna.tsinghua.edu.cn/virtualbox/6.0.10/
Cannot access the kernel driver! Make sure the kernel module has been loaded successfully.
参考:https://blog.csdn.net/ouyang_peng/article/details/53257070
进入
VirtualBox
的安装路径(我的电脑上路径为:C:\Program Files\Oracle\VirtualBox
)下的drivers\vboxdrv
目录中找到vboxdrv.inf
这个文件,鼠标右键点,然后选择安装;
安装说明
如果遇到虚拟机中存在default,并且不是正在运行的状态,这时候可能会遇到其他问题,可以通过在VirtualBox安装目录中使用下面命令查看/删除虚拟机
1 | # 查看虚拟机 |
安装成功
记住上面的ip地址。
遇到的问题
本文链接: http://www.ionluo.cn/blog/posts/c46cd1c6.html
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!