`

在Windows里使用Docker

 
阅读更多
<转自https://sanwen8.cn/p/2f88vQh.html>
1 曾经的双系统

对于初学Linux的同学,装双系统是一个很大的挑战。下载镜像、上谷歌、上不去谷歌、试各种方法、终于上去了、开始找镜像、下载镜像、刻录光盘、分区、改BIOS启动项顺序、终于装上了、修改引导、改软件源,blablabla。只有经历过的人才懂,精疲力竭。

实际在使用时,也并不舒服。想象一下,正在Linux里愉快的写代码呢,不得不上QQ处理一件事情。好嘛,重启,进Windows。要记得,此刻Linux还开着若干个Terminal,以及N个打开的浏览器Tab页呢!为什么不用QQ for Linux,为什么不用Wine,为什么不用QQ for Web?真心的不好用啊。

再比如,迅雷、Office、Photoshop,这些常用软件在Linux里找不到好的替代品。当然,可以选择Aria2、WPS for Linux,可是并没有原配的好啊。

最终,有人选择了Mac。当聊QQ的时候,调出Terminal是件多么时尚的是事情啊!

再或者,把女朋友的机器拿过来,左手Linux右手Windows,然后装个Synergy,也不失为一种选择。

或者,干脆装个虚拟机吧。

以上是过去式了,现在,我们有了新的选择——Docker。

2 插曲

Ubuntu on Windows都来了,还要啥自行车!Windows里也可以有Linux Shell了。

体验过的老司机说一下(Win10 14316),现在还不!稳!定!

当时我也是天真烂漫,格掉机器,Terminal弹出的一刹那,眼角湿润了!可是,当我装完了QQ等常用软件后发现,系统出错,各种不兼容。只能用Terminal的Windows,你们用过嘛。据说,更新为14367后,好多问题都解决了,还是先不要试了(逃

3 Docker使用四步曲

3.1 下载与安装

访问官方地址:https://www.docker.com/products/docker-toolbox,下载Windows版本的Docker Toolbox。


然后运行安装程序,一路Next即可。



3.2 启动

打开“Docker Quickstart Terminal”即可启动Docker。



经过简单的初始化后,会在Terminal中显示以下内容。需要记下绿色的IP地址,这里是“192.168.99.100”。



3.3 使用

1) Docker自带的Terminal不好用啊,使用Xshell等连接到Docker吧。IP地址使用上一步记来的那个,端口为22,用户名为“docker”,密码为“tcuser”:



2) 拉一个Ubuntu镜像下来,瞬间有了Ubuntu系统有木有:

docker@default:~$ docker pull ubuntu
Using default tag: latest
latest: Pulling from library/ubuntu
90d6565b970a: Pull complete
40553bdb8474: Pull complete
c3129e7479ab: Pull complete
091663bd70db: Pull complete
Digest: sha256:ba1688fec34f66d8a7ff5b42e697****25d8232c72bf0e38ad06dda10cad157293
Status: Downloaded newer image for ubuntu:latest
3) 查看本地有哪些镜像:

docker@default:~$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ubuntu              latest              cf62323fa025        2 days ago          125 MB
4) 使用下载的Ubuntu镜像创建一个“虚拟机”(container,即容器)并进入:

docker@default:~$ docker run -it ubuntu bash
root@20b0f4a7e5a3:/#
20b0f4a7e5a3便是创建的容器ID,可以看到,docker@default变成了root@20b0f4a7e5a3,表示我们已经进入到这个容器了。

5) 退出容器(容器将会关闭):

root@20b0f4a7e5a3:/# exit
exit
docker@default:~$
6) 因为容器之前已经创建过了,再次进入无需重复创建,直接启动并进入即可:

docker@default:~$ docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                       PORTS               NAMES
20b0f4a7e5a3        ubuntu              "bash"              6 minutes ago       Exited (130) 7 seconds ago                       furious_sinoussi
docker@default:~$ docker start 2
2
docker@default:~$ docker attach 2
root@20b0f4a7e5a3:/#
docker ps -a可以查看所有的容器(包括关闭的),不加-a参数,则只查看启动的容器。执行docker attach 2可以进入到容器2中。对了,2是20b0f4a7e5a3的简写,也可以写20、20b、20b等等。

7) exit可以退出并关闭容器。有时候我们只是想短暂离开一下,稍后还会回去。那就不要用exit了,使用以下命令:

root@20b0f4a7e5a3:/# [在容器里执行CTRL+P+Q临时退出容器]
docker attach 2再次进入容器。

8) 可以在容器里装一些自己常用的软件,比如:

root@20b0f4a7e5a3:/# apt-get install git vim ...
9) 备份这个为自己量身定做的容器吧(制作成镜像):

docker@default:~$ docker export -o myubuntu.tar 2

docker@default:~$ docker export 2 > myubuntu.tar
10) 还原之前制作的镜像:

docker@default:~$ docker import myubuntu.tar yang/myubuntu
sha256:452310aef4d809bc410cb2d6a699ab39b9040c410a2580cd382eebed1acf6afe
docker@default:~$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
yang/myubuntu       latest              452310aef4d8        2 minutes ago       195 MB
ubuntu              latest              cf62323fa025        2 days ago          125 MB
3.4 进阶

1) 有时候我们希望容器在后台运行,而不是直接把命令的结果输出。

docker@default:~$ docker run ubuntu bash -c 'while true; do echo "hi"; sleep 1; done'
hi
hi
hi
...
以上是我们不希望的,我们希望这样:

docker@default:~$ docker run -d ubuntu bash -c 'while true; do echo "hi"; sleep 1; done'
ab6ffafedcbdc70450b8c02b0853****010f68debd7f58b78f46fb2042b857567
docker@default:~$ docker logs -f ab6
hi
hi
hi
...
docker logs可以获取容器的输出信息。

2) 一个容器可以登入多次,也就是开多个终端连接过去:

docker@default:~$ docker exec -it 20b0f4a7e5a3 bash
3) 有时候我们会在容器里起一个服务,比如HTTP。

对于一个已经存在的容器20b0f4a7e5a3,可以这样做:

docker@default:~$ docker stop 20b0f4a7e5a3
docker@default:~$ docker commit 20b0f4a7e5a3 ubuntu01
docker@default:~$ docker run -p 1234:1234 -it ubuntu01 bash
如果还未创建容器,则直接可以:

docker@default:~$ docker run -p 1234:1234 -it ubuntu bash
然后,需要设置VirtualBox的“网络→端口转发规则”选项:

名称 协议 主机IP 主机端口 子系统IP 子系统端口
myweb TCP 127.0.0.1 1234
1234
当容器中启动HTTP服务时,在Windows里访问:http://192.168.99.100:1234/即可。

4) 尽管Linux中的sz和rz命令可以与Windows互传文件,但还是没有共享一个文件夹来的方便啊。

首先,先在VirtualBox的“共享文件夹→添加共享文件夹”中设置:

共享文件夹路径:X:\win_folder

共享文件夹名称:win_folder

假设win_folder里有3个文件:1.txt、test.mp3、2016.jpg

然后,在Docker里执行以下命令,把共享文件夹win_folder挂到/home/docker/vm_folder下:

docker@default:~$ mkdir -p /home/docker/vm_folder
docker@default:~$ sudo mount -t vboxsf win_folder /home/docker/vm_folder
为了能够让容器访问该共享文件夹,还需要:

docker@default:~$ docker run -it -v /home/docker/vm_folder:/container_folder ubuntu
root@afcf5f504e08:/#
其中,-v参数表示创建一个数据卷,并挂载到容器中。好啦,可以在容器里尽情使用啦:

root@afcf5f504e08:/# cd /container_folder/
root@afcf5f504e08:/# ls
1.txt test.mp3 2016.jpg
参考

http://core0.staticworld.net/images/article/2014/10/docker_windows-100525105-primary.idge.jpg

https://www.zhihu.com/question/422****24/

https://zh.wikipedia.org/zh-cn/Docker_(軟體)

https://www.gitbook.com/book/yeasy/docker_practice/details

http://tuhrig.de/mount-windows-folder-to-boot2docker-vm/
分享到:
评论

相关推荐

    Windows版本docker安装包

    在Windows操作系统上安装Docker,可以借助Docker Desktop或者Docker Toolbox。这里我们将重点讨论与"Windows版本docker安装包"相关的知识点。 **Docker Desktop for Windows** Docker Desktop是Docker为Windows用户...

    Docker Desktop for Windows 10 (Docker Desktop Installer.exe)

    Docker Desktop for Windows 10 是一个官方提供的强大工具,它允许用户在Windows 10操作系统上轻松运行Docker容器化应用。Docker Desktop整合了Docker引擎、Docker CLI客户端、Docker Compose、Kubernetes(可选)...

    windows下安装docker

    ### Windows 下安装 Docker #### 一、安装 ...通过以上步骤,可以在 Windows 平台上成功搭建并使用 Docker 开发环境。如果遇到其他问题,还可以参考 Docker Toolbox 的官方文档或社区资源寻求帮助。

    windows7 安装docker包 DockerToolbox18.03.0.zip

    在Windows 7上安装Docker应用通常涉及到使用Docker Toolbox,因为Docker的官方版本对Windows 7的支持有限。Docker Toolbox是一个包含了多个工具的集合,它为旧版Windows操作系统(如Win7和Win8)提供了运行Docker的...

    完美解决Windows10下无法对docker容器进行端口访问的操作

    原因:docker是运行在Linux上的,在Windows中运行docker,实际上还是在Windows下先安装了一个Linux环境,然后在这个系统中运行的docker。 也就是说,服务中使用的localhost指的是这个Linux环境的地址,而不是我们的...

    4.4.4版本windows-docker.zip

    【标题】4.4.4版本Windows Docker是一个针对Windows操作系统的Docker容器化平台的特定版本,它提供了在Windows上运行Linux和Windows容器的能力。这个版本可能是针对4.4.4版Docker Engine进行优化和更新的,确保了在...

    docker windows 安装包

    docker windows 安装包

    Docker 安装包(Windows版)

    Docker 安装包(Windows版)

    Windows系统下Docker的安装与配置

    docker安装:Windows系统下Docker的安装与配置; docker安装:Windows系统下Docker的安装与配置; docker安装:Windows系统下Docker的安装与配置; docker安装:Windows系统下Docker的安装与配置; docker安装:...

    windows下安装docker的教程详解

    由于我本地的mysql版本比较低,最近想着要升级一下mysql版本,鉴于docker容器的火热,就想着在本地装个docker环境,然后下载最新版的mysql镜像,完成mysql8.0的安装。电脑是windows 10版本。 一 启用Hyper-V 打开...

    Docker windows版本

    要先用git里面的sh,就可以正常使用linux模拟环境,在用...Docker windows版本Docker windows版本Docker windows版本Docker windows版本Docker windows版本Docker windows版本Docker windows版本Docker windows版本

    Docker for Windows Installer.zip

    Docker for Windows Installer

    Windows版 Docker Desktop

    Windows版 Docker Desktop

    Windows版本Docker桌面版安装包

    Docker Desktop 是一款强大的开发工具,使开发者能够在 Windows 环境中高效构建、共享和运行容器化应用程序。它提供了一种无缝的开发体验,允许用户通过简单的图形界面和命令行工具来管理 Docker 容器和镜像。 ...

    windows下的docker1.12.3版本及Kitematic安装包

    有些工具并不是版本越新就越好,我家那个破电脑,装最新版的docker死活就是用不了,还是这个版本的最香

    Windows上安装Docker所需要的wsl.msi的安装包.rar

    Windows上安装Docker所需要的wsl.msi的安装包.rar Windows上安装Docker所需要的wsl.msi的安装包.rar Windows上安装Docker所需要的wsl.msi的安装包.rar Windows上安装Docker所需要的wsl.msi的安装包.rar

    windows上运行docker

    NULL 博文链接:https://jy03100000.iteye.com/blog/2408320

    docker在旧版本windows的安装包

    可以在老的windows版本安装docker的工具,解决版本老旧且不能升级的问题,让cmd支持docker命令

    Windows10 使用 docker 逐一构建 [lnmp]

    Windows10 使用 docker 逐一构建 [lnmp] 目录结构

Global site tag (gtag.js) - Google Analytics