Docker 安装配置初探 - Go语言中文社区

Docker 安装配置初探


背景

之前团队中因为Node版本升级问题,项目整个瘫痪无法运行,搞得杰哥双休日折腾环境折腾了两天,老大遂提出以Docker的方式取代现有的环境。目前团队里Windows居多,还有部分Macbook,环境不统一也是个问题。昨日抱着试一试的想法,在自己的Macbook上搭建一个Docker的环境,谁知道这一搭,才发现其中存在无数的坑,所以写下这篇文章,分享给大家在安装docker的过程中需要注意的一些问题。

安装方式

关于docker本身的一些介绍本文不做赘述,可以参考Docker — 从入门到实践
网上对于安装Docker的文档已经很多,包括官网等,本文主要还是以Mac环境为主,Windows用户可以参考,主要介绍整个安装过程。对于Mac环境安装主要有两种方式,一种是安装Docker Toolbox,一种是安装Docker For Mac的Client,考虑到团队中有Mac和Windows两种环境,所以选择第一种方式。

开始动手

目标:配置一个通用 Image,该Image可以在多种环境中使用,项目文件可以在容器中开发又可以在本机上用版本管理软件管理(如:git),预装开发过程中可能用到的包。

过程:

  1. 下载并安装 Docker Toolbox

  2. 下载并运行 Ubuntu 镜像

  3. 做常规的初始化工作(换源、安装常用工具)

  4. 安装前端开发工具

  5. 导出镜像

1.下载安装Docker Toolbox

由于"墙"的问题,一开始没有注意这个问题,导致刚开始安装的时候非常慢,所以在吸取教训后,选择国内的一些站点来做镜像,国内可以选择的站点很多,这里我们选择阿里云镜像,里面有Mac和Windows两种版本的安装包,可以按需下载。BTW:没注册的小伙伴可以先注册一个阿里云的帐号,后面会用到。

Docker Toolbox 是 Docker 官方开发的 Docker 套装,里面有全套 Docker 环境,也有图形化工具 Kitematic,直接下载安装即可。
安装好Docker Toolbox后直接会发现电脑上多了下面三个东西:

此时你的VirtualBox是干净的,没有任何虚拟机,接下来,点击Kitematic,生成一个default的虚拟机,此时需要我们注册一个Docker Hub 账号,方便后面使用。

因为在下载镜像文件的时候不被墙,所以我们需要修改我们的配置,让我们在访问的时候,直接访问的是国内的站点。之前注册的阿里云的帐号后,请查看你的容器Hub服务控制台查看你的专属加速地址。

我的加速地址是:https://yvcphu9g.mirror.aliyu...,也可以直接使用。

下面需要执行一些命令去让我们的虚拟机访问对应的镜像地址:

创建一台安装有Docker环境的Linux虚拟机,指定机器名称为default

docker-machine create -d virtualbox default

查看机器的环境配置,并配置到本地。然后通过Docker客户端访问Docker服务。

docker-machine env default

eval "$(docker-machine env default)"

docker info

配置Docker加速器

您可以使用如下的脚本将mirror的配置添加到docker daemon的启动参数中。

docker-machine ssh default "echo 'EXTRA_ARGS="--registry-mirror=https://yvcphu9g.mirror.aliyuncs.com"' | sudo tee -a /var/lib/boot2docker/profile"

docker-machine restart default

此时你名为default的虚拟机对应mirror就已经配置完成。

2.下载并运行 Ubuntu 镜像

打开Kitematic,在search框中输入ubuntu,这里我们下载最精简的ubuntu版本,对应下图第二排第一个,点击create,你会发现下载瞬间完成,如果是直接访问docker hub,不仅下载慢,而且还会因为网络问题无法访问,即使翻墙,下载速度依然不行,故之前配置的镜像此时发挥了作用。

下载完成后,在My images中我们看到了对应的刚刚下载好的ubuntu的镜像

点击create,就可以进入到管理页面,默认是开启,点击EXEC,就看到了熟悉的linux命令行模式

至此,ubuntu的镜像文件也安装完成

3.做常规的初始化工作

Ubuntu 装完系统第一件事是什么?没错,换源。
“源”其实就是网址,你在 Ubuntu 中用 apt-get install 安装软件的时候就是从“源”下载。Ubuntu 默认的源在国外,安装起来非常慢,所以要先换成国内的源。

国内有很多 Ubuntu 源,我用的是中科大源。
执行下面的命令进行换源操作:

sed -i 's/archive.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list

apt-get update

换源完毕,之后 apt-get 都会从中科大源下载软件。
前面说过,这个 Ubuntu Image 是超级精简版,很多不重要的工具都被删掉了,包括常用的 vim、curl、ipconfig、ping。除此之外,Linux 最常用的 TAB 补全路径也没有,所以下面先安装必要的编辑器和路径补全:

apt-get install vim bash-completion

这样就完成了基础配置,Ubuntu 可以正常用了

4.安装前端工具

首先安装 npm:

apt-get install npm

然后安装 cnpm,之后所有 npm 操作都改成 cnpm,从淘宝源下载,速度会快很多。

npm install -g cnpm --registry=https://registry.npm.taobao.org

接着安装 n,TJ 大神的 NodeJS 版本管理工具,可以安装多个版本,一键切换。n 需要用到 curl,所以先安装 curl:

apt-get install curl

然后安装 n:

cnpm install -g n

最后使用 n 安装目前的稳定版 NodeJS:

n stable

这样就准备好了前端开发需要的基本工具,你可以根据你的项目需求安装对应的库。

5.导出镜像

终于到了最后一步,别忘了前面的提醒:如果不 commit,重启之后所有改动都会丢失!
所以先 commit。点击 Kitematic 左下角 “DOCKER CLI”,输入命令行执行:

docker ps

会看到下面这样的输出:

复制 Container ID,我这里是5804d12607c5,然后执行:

docker commit 5804d12607c5 username/imagename

username 换成你的 Docker Hub 用户名,imagename 换成你的镜像名称。我这里就是 cnyzgkc/ubuntu。

commit 之后就可以把当前 Container 导出 Image 了:

docker export 5804d12607c5 -o ubuntu

执行完后,在你的个人目录下(Mac 上是 /Users/你的用户名)可以找到 ubuntu 文件,这就是我们的最终目标:一个完成所有配置的 Image。至此,你的目标已经完成的差不多了,制作了一个配置好环境的Image,那么这个Image能不能给其他同事用呢?

我的初衷,也就是理想状态是这样的,对于新人来说,只需要按照如下步骤就可以配置完成:

  1. 准备好 Docker Toolbox 安装包和 Ubuntu Image

  2. 安装 Docker Toolbox

  3. 打开 Kitematic,注册一个 Docker Hub 账号并登陆

  4. 在 Kitematic 中点击左下角“DOCKER CLI”打开 Docker 命令行

  5. 输入命令docker import,从文件夹中直接把 ubuntu 文件拖拽到命令行中(注意 ubuntu 文件路径中不能有中文,如果有,先把文件移动到另一个纯英文路径的文件夹中)

  6. 输入命令docker images,复制出镜像的 IMAGE ID(类似54184b993d46)

  7. 输入命令

docker run -t -i --privileged -p 137-139:137-139/tcp

-p 445:445/tcp -p 3000:3000/tcp -p 3123:3123/tcp 
-p 8000:8000/tcp -p 8080:8080/tcp -d --name dev -v /web IMAGEID 
/bin/bash

把其中的 IMAGEID 替换为上一步复制的内容

最后回到 Kitematic,应该可以看到左侧多了一个容器,此时环境已经搭建完毕

但是:理想总是丰满的,现实总是骨感的,在我正踌躇满志准备在windows上实践时,却发现有各种问题,首先是公司电脑的管理员权限,不会统一配置,再者在启动Docker的过程中出现了问题2,还是需要管理员权限,所以最后得出的结论是,如果你的windows不存在权限问题,ok,你按照我上述的过程后,可以直接放到windows机器上运行。但如果没有权限,囧~~

小结

虽然本次的结果没有按照预期的方向走,最终没能成功,但在革命成功的路上总要走一些弯路,帮着团队扫清一些障碍也是好的,并且在这个安装docker的过程中,也学到了很多关于docker以及云服务的相关知识,踩了不少坑,分享给大家,以免后面的同学再做重复劳动。

参考文献

1.用 Docker 快速配置前端开发环境

2.Docker 配置前端开发环境实战

3.docker使用阿里云Docker镜像库加速(修订版)

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_33692284/article/details/89068897
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2021-05-22 15:03:13
  • 阅读 ( 2002 )
  • 分类:docker

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢