本文转自:https://www.jianshu.com/p/d809971b1fc1

借助 docker 可以不在开发电脑中安装环境,比如 nodejs,记录下如何实现。

下载安装

根据自己的电脑系统,在 install-docker-for-mac-windows 下载最新安装包并安装。

选择好目录后下一步,提示需要安装什么组件:

  • Docker Compose for Window 不知道什么用,勾选
  • VirtualBox 虚拟机,如果电脑之前安装过 Oracle VM VirtualBox 可以不勾选
  • Kitematic for Windows(Alpha) 使用图形界面来使用 docker,建议勾选
  • Git for Windows 一个版本控制 + bash 命令终端,如果没有安装建议勾选
 
安装选项-1

继续下一步

  • Create a desktop shortcut
  • Add docker binaries to PATH
  • Upgrade Boot2Dcoker VM
 
安装选项-2

三个选项全部勾选,下一步就开始安装软件到系统中,等待一会即可完成安装。

初始化虚拟机

打开安装目录,不出意外目录结构是这样的:

├──kitematic
├──boot2docker.iso
├──docker.exe
├──docker-compose.exe
├──docker-machine.exe
├──docker-quickstart-terminal.ico
├──start.sh
├──unins000.dat
└──unins000.exe

boot2docker.iso拷贝至C:\Users\用户名\.docker\machine\cache目录下,双击打开start.sh文件。

 
初始化虚拟机

当看到该画面时表示虚拟机已经安装在Virtual Box里面,可以打开Oracle VM VirtualBox查看:

 
虚拟机初始化完成

这一步完成后,我们需要了解一个概念,就是现在我们有了两个系统,一个 windows 系统即我们直接操作的图形界面系统,我们称为主机,在主机上安装了VirtualBox,该软件内有 linux 虚拟机,称为docker主机,在 docker 主机中我们之后还会创建 linux 系统,称为容器

可以通过终端显示的用户名@计算机名来区分

 
三种系统

下面我们实现主机与 docker 主机共享文件夹。

主机与 docker 主机共享文件夹

假设我需要将docker_study作为共享文件夹,该文件目录如下:

D:/docker_study
└──koa-template

koa-template是我已经写好的项目,可以在docker_study文件夹内执行git clone https://github.com/ltaoo/koa-template.git,会在docker_study文件夹生成koa-template文件夹。

打开Oracle VM VirtualBox,选中“正在运行”状态的 default 虚拟机,进入 设置-> 共享文件夹,添加共享文件夹,选中docker_study文件夹,勾选“自动挂载”、“固定分配”,确定。

 
设置共享文件夹-1
 
设置共享文件夹-2

default上右键,重启该虚拟机。

重启完成后,使用git作为终端来连接我们的 docker 主机

docker-machine ssh default

如果提示该命令不存在,需要将 docker 的安装目录加入到环境变量中

进入到 docker 主机中,也就是终端显示docker@default:~$的情况,输入命令

mount

可以看到docker_study在虚拟机内的路径,进入该路径,查看是否读取到我们主机的文件与文件夹

 
共享文件夹
# 进入 docker_study 目录
cd /docker_study
# 查看该目录下的文件与文件夹
ls

如果能够显示我们主机中的koa-template就表示配置共享文件夹成功。

创建容器

确保终端是处于“docker 主机”内,先下载镜像:

docker pull node

表示下载安装最新版本 node 的 linux 系统。

如果提示 Cannot connect to the Docker daemon at unix:///var/run/docker.sock,使用sudo nohup docker daemon -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock &命令,再按一下回车即可。这一命令建议先配置加速器

然后就可以使用该镜像生成容器了:

# 查看镜像是否下载成功,看到 Repository 为 node 且 Tag 为 latest 表示成功,Created 不是下载镜像时间所以可能是几天前
docker images
# 生成容器
docker run --name koa -v /docker_study/koa-template:/app -p 3000:3000 -i -t node /bin/bash

这句命令,表示我们会生成一个名字为koa的容器,并且将 docker 主机内的 /docker_study/koa-tempate 文件夹映射(挂载)到容器中的 app 文件夹,该容器是使用刚刚下载的有最新版本 node 的镜像生成的,并且使用 /bin/bash 命令来访问该容器。

执行完上面的命令,终端将会进入容器中,即终端显示root@xxxxxxx:/#这样的。
容器承载着我们的应用,我们先将应用运行起来:
进入项目目录安装依赖

cd /app
npm install --registry=https://registry.npm.taobao.org --no-bin-links

如果没有--no-bin-links会报错,参考unknown symlink '../express/bin/express

依赖安装完成后,就可以开启我们的服务

node start.js

在主机浏览器打开网址http://192.168.99.100:3000/即可访问,并且修改主机内docker_study/koa-template/views/base.html的内容,刷新网页能够看到改变!

总结

作为一个个人开发者,使用 docker 最大的优点就是不用考虑配置环境了,想要学习新的语言直接运行一个容器就可以。

参考

作者:ltaoo
链接:https://www.jianshu.com/p/d809971b1fc1
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

[转]完整记录在 windows7 下使用 docker 的过程的更多相关文章

  1. Docker:Windows7下使用docker toolbox(1)

    一.安装 官方网址:https://docs.docker.com/docker-for-windows/install/ win10以下安装:https://www.docker.com/produ ...

  2. centos6.5下安装docker的过程办法

    转载:https://www.cnblogs.com/tymagic/p/10794477.html 在看了网上N多复制粘贴的文章,又尝试无效后,我把我最终成功的办法发出来,希望能帮到拼命干环境的你. ...

  3. 记Windows10下安装Docker的步骤

    本文主要是记录吾八哥本人在Windows10下安装Docker的过程,当然这些步骤也是在网上搜索查阅资料得知而来的!具体步骤如下: 一.启用Hyper-V 打开控制面板 - 程序和功能 - 启用或关闭 ...

  4. centos 6.5下安装docker

    关于docker的更多信息,请移步度娘.以下两个链接也对docker有了具体的介绍: http://www.docker.org.cn/book/docker/what-is-docker-16.ht ...

  5. VadRoot枚举进程模块在Windows7下的完整实现

      原理小伟的小伟在http://bbs.pediy.com/showthread.php?t=66886说的挺清楚了,Windows7下有一些变化,使用NtQueryVirtualMemory来枚举 ...

  6. Linux下部署docker记录(0)-基础环境安装

    以下是centos系统安装docker的操作记录 1)第一种方法:采用系统自带的docker安装,但是这一般都不是最新版的docker安装epel源[root@docker-server ~]# wg ...

  7. ubuntu 下安装docker 踩坑记录

    ubuntu 下安装docker 踩坑记录 # Setp : 移除旧版本Docker sudo apt-get remove docker docker-engine docker.io # Step ...

  8. windows7下docker配置镜像加速

    原文地址:https://blog.csdn.net/slibra_L/article/details/77505003 1,本文目的:windows7下docker配置镜像加速,下面是具体操作步骤: ...

  9. Centos7.2 下DNS+NamedManager高可用部署方案完整记录

    Centos7.2 下DNS+NamedManager高可用部署方案完整记录 之前说到了NamedManager单机版的配置,下面说下DNS+NamedManager双机高可用的配置方案: 1)机器环 ...

随机推荐

  1. sock5协议转换http协议工具polipo使用笔记(Centos7)

    一.安装 Shadowsocks使用socks5协议,而终端很多工具目前只支持http和https等协议,所以我们为终端设置Shadowsocks的思路就是将socks5协议转换成http协议,然后为 ...

  2. springsecurity 源码解读之 SecurityContext

    在springsecurity 中,我们一般可以通过代码: SecurityContext securityContext = SecurityContextHolder.getContext(); ...

  3. 迁移桌面程序到MS Store(1)——通过Visual Studio创建Packaging工程

    之前跑去做了一年多的iOS开发,被XCode恶心得不行.做人呢,最重要的是开心.所以我就炒了公司鱿鱼,挪了个窝回头去做Windows开发了.        UWP什么的很久没有正儿八经写了,国内的需求 ...

  4. linux 下动态链接实现原理

    符号重定位 讲动态链接之前,得先说说符号重定位. c/c++ 程序的编译是以文件为单位进行的,因此每个 c/cpp 文件也叫作一个编译单元(translation unit), 源文件先是被编译成一个 ...

  5. Linux Ubuntu部署web环境及项目tomcat+jdk+mysql

    1,下载文件 在官网下载好 tomcat.jdk.mysql的linux压缩包 后缀名为.tar.gz 并通过xftp上传到服务器 或者直接通过linux命令 下在wget文件的下载地址 例如: wg ...

  6. 856. Score of Parentheses

    Given a balanced parentheses string S, compute the score of the string based on the following rule: ...

  7. Javascript高级编程学习笔记(11)—— 垃圾回收机制

    垃圾回收机制 垃圾回收机制,是保证脚本能长时间运行的重要机制 JS具有自动垃圾收集机制,也就是说执行环境会负责管理代码执行过程中使用的内存 与一些偏底层的语言(c.c++)不同,我们不需要手工地去管理 ...

  8. 【xsy1300】 原题的旅行 最短路+倍增

    题目大意:有一个$n$个点,$m$条边的无向图,玩家走过第$i$条边,血槽中的血会下降$v_i$点,如果不足$v_i$点,这人会当场去世. 这$n$个点中,有若干个是关键点,在这些关键点可以将血槽补满 ...

  9. oracle中常见的查询操作

    普通查询:select * from t; 去除重复值:select distinct f1,f2 from t; between用法:select * from t where f1 not/bet ...

  10. Java中IO流中的装饰设计模式(BufferReader的原理)

    本文粗略的介绍下JavaIO的整体框架,重在解释BufferReader/BufferWriter的演变过程和原理(对应的设计模式) 一.JavaIO的简介 流按操作数据分为两种:字节流与字符流. 流 ...