windows下docker desktop的安装和使用
在windows使用docker根据官方文档安装的是Docker Desktop。Docker desktop是Microsoft Windows的Docker的社区版本。 我们可以从Docker Hub下载适用于Windows的Docker desktop。地址是:Docker Desktop for Windows。
系统要求
Windows 10 64位:专业版,企业版或教育版。
必须启用Hyper-V和Containers Windows功能。
要在Windows 10上成功运行Client Hyper-V,需要满足以下硬件先决条件:
具有二级地址转换(SLAT)的64位处理器
4GB系统内存
必须在BIOS设置中启用BIOS级硬件虚拟化支持。
注意:Docker基于Microsoft对Windows 10操作系统的支持生命周期在Windows上支持Docker Desktop。
此外,对于需要使用Docker Toolbox和Docker Machine的用户:运行Docker Desktop需要用到Microsoft Hyper-V。 必要时,Docker桌面Windows安装程序会启用Hyper-V,然后重新启动计算机。 启用Hyper-V后,VirtualBox就无法在使用。 但是,将保留所有现有的VirtualBox VM映像。
使用docker-machine创建的VirtualBox VM(包括通常在Toolbox安装期间创建的默认VM)不能再启动。 这些VM不能与Docker Desktop一起使用。 但是,我们仍然可以使用docker-machine管理远程VM
installer里面包含的东西
Docker Desktop installer包括Docker Engine,Docker CLI客户端,Docker Compose,Notary,Kubernetes和Credential Helper。
使用Docker Desktop创建的容器和映像在安装它的机器上的所有用户帐户之间共享。 这是因为所有Windows帐户都使用相同的VM来构建和运行容器。
windows上docker desktop安装流程
- 双击Docker Desktop Installer.exe运行安装程序。
- 如果尚未下载安装程序(Docker Desktop Installer.exe),则可以从Docker Hub中获取它。
- 按照安装向导上的说明接受许可证,授权安装程序,然后继续安装。
- 出现提示时,请在安装过程中使用您的系统密码授权Docker Desktop Installer。 需要特权访问才能安装网络组件,到Docker应用程序的链接以及管理Hyper-V VM。
- 在安装完成对话框上单击完成,然后启动Docker Desktop应用程序。
启动docker desktop
Docker Desktop在安装后不会自动启动。 要启动Docker Desktop,我们可以搜索Docker,然后在搜索结果中选择Docker Desktop。
当状态栏中的鲸鱼图标保持稳定时,Docker desktop已经启动并运行,并且我们可以从任何终端窗口访问。
我们可以创建docker账户,然后用docker账户登录docker desktop:
使用docker desktop
1.我们可以打开一个cmd窗口或者power shell
2.执行命令 docker --version
> docker --version
Docker version 19.03.1
3.从Docker Hub提取hello-world映像并运行一个容器:
docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
1b930d010525: Pull complete Digest: sha256:f9dfddf63636d84ef479d645ab5885156ae030f611a56f3a7ac7f2fdd86d7e4e
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/
For more examples and ideas, visit:
https://docs.docker.com/get-started/
4.List出从Docker Hub下载的hello-world映像:
> docker image ls
可以得到下面的内容
其中的hello-world就是刚刚落下来的image
5.list出hello-world 容器以及其他容器
> docker container ls --all
如果去掉命令最后的--all的话,则只会list出正在运行的容器。
6.我们还可以通过下面的命令来查看docker的其他功能
> docker --help
> docker container --help
> docker container ls --help
> docker run --help
使用docker application
1.提取Ubuntu OS的映像,并在生成的容器内运行交互式终端:
docker run --interactive --tty ubuntu bash
Unable to find image 'ubuntu:latest' locally
latest: Pulling from library/ubuntu
5bed26d33875: Pull complete f11b29a9c730: Pull complete 930bda195c84: Pull complete 78bf9a5ad49e: Pull complete Digest: sha256:bec5a2727be7fff3d308193cfde3491f8fba1a2ba392b7546b43a051853a341d
Status: Downloaded newer image for ubuntu:latest
aaa@qq.com:/#
2.运行成功之后我们就已经在容器中了。 在root#提示符下,检查容器的主机名:
aaa@qq.com:/# hostname
4c6071c62eed
aaa@qq.com:/#
请注意,主机名已分配为容器ID。
3.使用exit命令退出shell程序,这也会停止容器:
aaa@qq.com:/# hostname
4c6071c62eed
aaa@qq.com:/# exit
exit
4.使用下面的命令查看所有的container
docker container ls --all
我们可以发现刚刚的Ubuntu也在里面了
docker container ls --all
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4c6071c62eed ubuntu "bash" 5 minutes ago Exited (0) 51 seconds ago goofy_goldberg
061f65b54169 hello-world "/hello" 49 minutes ago Exited (0) 49 minutes ago pe
5.拉取并且运行Dockerized nginx Web服务器,名字叫做webserver:
docker run --detach --publish 80:80 --name webserver nginx
Unable to find image 'nginx:latest' locally
latest: Pulling from library/nginx
fdd5d7827f33: Pull complete
a3ed95caeb02: Pull complete
716f7a5f3082: Pull complete
7b10f03a0309: Pull complete
Digest: sha256:f6a001272d5d324c4c9f3f183e1b69e9e0ff12debeb7a092730d638c33e0de3e
Status: Downloaded newer image for nginx:latest
dfe13c68b3b86f01951af617df02be4897184cbf7a8b4d5caf1c3c5bd3fc267f
注意,如果80端口被占用了,那就需要换一个端口号,例如使用90:80。
6. 访问Web浏览器http:// localhost,会显示nginx起始页。 (如果是使用80端口号,则直接访问localhost即可,无需附加80,因为我们在docker命令中指定了80,而他是默认HTTP端口。否则就使用localhost:90的方式访问)
7.查看所有在运行的container
docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e4295758bda5 nginx "nginx -g 'daemon of…" 5 minutes ago Up 5 minutes 0.0.0.0:90->80/tcp webserver
8.通过我们为分配的名称(webserver)停止正在运行的nginx容器:
> docker container stop webserver
9.删除我们刚刚创建的container
docker container rm webserver goofy_goldberg peaceful_gagarin
webserver
goofy_goldberg
peaceful_gagarin
Kubernetes
Docker Desktop包含一个在Windows主机上运行的独立Kubernetes服务器,因此我们可以测试在Kubernetes上部署Docker work load的方式。
Kubernetes客户端命令kubectl已包括在内,并配置为连接到本地Kubernetes服务器。 如果我们自己安装了kubectl并指向其他环境,例如minikube或GKE集群,要确保更改上下文,以使kubectl指向docker-desktop:
推荐阅读
-
使用WSL2、VSCode和Docker Desktop搭建在Windows下的Linux开发环境
-
windows下的安装使用Vagrant,Docker
-
在Win版的Docker里安装和使用redis
-
「docker实战篇」python的docker爬虫技术-在linux下mitmproxy介绍和安装(四)
-
superset在linux和windows下的安装和部署
-
Linux和Windows之间文件传输(Linux下rz,sz与ssh的配合使用) 博客分类: Linux linuxwindowsrzsz文件传输
-
Mongodb在windows下的安装和启动 博客分类: Mongodb mongodbnosql数据库非关系型
-
基于docker 的 elasticstrach安装和基本使用
-
docker的基本使用,安装和常用命令
-
docker的安装和基本的使用