跳至主要内容

博文

目前显示的是标签为“docker”的博文

Update Docker Desktop to use WSL2

PC 总算吃到了 Windows 10 的 2004 版本更新。 重启完毕之后 Docker Desktop 提示说可以将后端从 HyperV 虚拟机改为 WSL2,效能更佳。 听信了“广告”,下载了一个微软的内核更新程序,安装顺利,然后重启 Docker Desktop 就给跪了……错误信息说是 > 'C:\Users\john.doe\AppData\Local\Docker\vm-config\config.iso' 正由另一进程使用 搜索万能的 Google 后找到了这篇讨论: https://github.com/docker/for-win/issues/6822 简单来说就是 HyperV 仍旧在用,要么是到 HyperV 的管理器里头 shutdown 为 Docker 服务的那台虚拟机,并设置为不再随操作系统自动启动,然后重启一下 Docker Service;要么跑几个命令行分别关闭 Docker Desktop 和 WSL 再逆序启动。依据第一个方法速度解决了这个问题。

Fix Docker Desktop in Windows using MOFCOMP

前一段 Windows 10 上的 Docker Desktop 突然不工作了,卸载重装也无效。一开始以为是 HyperV 里面什么地方被折腾坏了,但是删光了自定义的网络和设备仍旧无助。 后来在[某处](https://www.soinside.com/question/YKwpTYAjjstuUjDSvdkKx9) 看到有人给了这么一条命令(需要以系统管理员权限执行): MOFCOMP %SYSTEMROOT%\System32\WindowsVirtualization.V2.mof 重启之后重装居然解决了! `mofcomp` 貌似是 Windows Management Instrumentation (WMI) 中的[一个命令行工具](https://docs.microsoft.com/en-us/windows/win32/wmisdk/mofcomp), > Mofcomp.exe 是一个操作系统工具,用于编译 MOF 文件,并将文件中包含的信息添加到 WMI 存储库中。 坦白说暂时还不清楚为什么这个命令管用,先记下来以备不时之需……

Running Kubernutes in Windows 10

试着在 Windows 10 PC 上玩 docker 和 Kubernetes。作为容器管理平台,Kubernetes 可以被安装并运行在不同类型的环境下,包括开发者的笔记本电脑,或是云服务商的VM,甚至是一组裸机上…… 参考官方文档 [Picking the Right Solution](https://kubernetes.io/docs/setup/pick-right-solution/) 找到了适合创建单机单节点 Kubernetes Cluster 的 [Minikube](https://kubernetes.io/docs/getting-started-guides/minikube/#minikube-features)。 Minikube 提供的特性包括: * DNS * NodePorts * ConfigMaps and Secrets * Dashboards * Container Runtime: Docker, rkt and CRI-O * and etc. 安装 Minucube 的步骤看起来也挺简单的,先要 PC 的 BIOS 支持 VT-x 或是 AMD-v 虚拟技术,这年头只要不是太老的 PC 都行。接着需要在 OS 里装一个 Hypervisor,对 Windows 而言常见的就是 VirtualBox 或者 Hyper-V。 之前为了安装 Docker for Windows 卸载了 VirtualBox 改用 Hyper-V,因为 docker 的文档 [Machine Driver](https://docs.docker.com/machine/drivers/hyper-v/) 里明说了: > Hyper-V must be enabled on your desktop system. Docker for Windows automatically enables it upon install 谁让人家是微软的亲儿子捏? 接着要安装 `kubectl` 这是 Kubernetes 的 CLI (命令行工具),在 Windows 10 里可以利用 Chocolatey 包管理器来[代为安装](https://kubernetes.io/docs/tasks/tools/inst...

Docker in Windows 10

在 Windows 10 里头玩 docker,先安装 docker for windows 套件,然后直接可以用 PowerShell Console 来执行 `docker ps` 等指令。十分流畅地开始玩耍。 不过在尝试另一个 console - Windows 10 整合了 Ubuntu 的 bash,可以直接 Win+R 来执行 `bash` 打开命令行窗口。在里面就无法使用 docker,哪怕是 `sudo apt-get install docker` 也不成。 后来参考一个大牛的帖子 —— [Windows 10 bash & Windows docker 問題處理](https://blog.caesarchi.com/2017/05/15/windows-10-bash-windows-docker-intergrate_problem_solve/) 解决了。 摘录指令如下: ``` $ sudo apt-get install apt-transport-https ca-certificates curl software-properties-common $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - $ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" $ sudo apt-get update $ sudo apt-get install docker-ce ``` 总结一下:Win 10 总体来说比以前的 Windows (对Linux)友好了很多,但是小坑不少~

Create a docker image for coding (2)

基本思路是基于alpine来安装一些软件,包括 zsh, tmux, vim 等。 ``` FROM alpine:latest RUN echo "start to build linux workspace" \ # Install Workspace related tools && apk add --update --no-cache git curl vim tmux zsh \ # Install VIM bundle && mkdir -p ~/.vim/bundle \ && git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim ``` 接着开始配置这些工具,像是 vim 和 tmux 最好使用 GitHub 上开放的配置文件,或者如果自己有偏好设置也行。我使用的就是自己定制的一些配置文件。 ``` COPY vimrc /root/.vimrc COPY tmux.conf /root/.tmux.conf ``` zsh 的配置就没有太多的花头,大名鼎鼎的 oh-my-zsh 足矣。 ``` RUN echo "then configure tools" \ # By default the login shell for root user is /bin/ash in alpine, replace with zsh && sed -i -e "s/bin\/ash/bin\/zsh/" /etc/passwd \ # Install oh-my-zsh and configure zsh && (sh -c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)" || true) \ && sed -i -- 's/robbyrussell/w...

Docker for Oracle database

发现 docker hub 上居然有 [Oracle DB 的 docker image](https://hub.docker.com/r/sath89/oracle-12c/),而且看可以配置的参数应该是挺方便的。 ``` docker run -d -p 8080:8080 -p 1521:1521 \ -v /User/me/workspace/12c/data:/u01/app/oracle \ -e DBCA_TOTAL_MEMORY=4096 \ sath89/oracle-12c ``` 只是不知道它的许可是怎么用的~甲骨文的律师可是有名的喜欢找麻烦……

Create a docker image for coding (1)

玩了会儿 Alpine 发现短小精悍, > docker run -it --rm -t alpine:latest /bin/sh 于是开始基于这个image打造自己的coding environment。安装了 zsh, tmux, vim 等工具。启动一个 container 就直接进入 tmux 的界面,可以随意开多视窗或是切割视窗,丰俭由人。 参考资料: 0. [Docker run reference](https://docs.docker.com/engine/reference/run/) 0. [Dockfile](https://github.com/JAremko/alpine-vim/blob/master/alpine-vim-base/Dockerfile) 0. [Oh-my-zsh](https://github.com/robbyrussell/oh-my-zsh) 0. [Vundle for VIM](https://github.com/VundleVim/Vundle.vim) 0. [Making tmux Pretty and Usable](http://www.hamvocke.com/blog/a-guide-to-customizing-your-tmux-conf/)