欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

windows下docker desktop的安装和使用

程序员文章站 2022-04-14 13:44:26
...

在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安装流程

  1. 双击Docker Desktop Installer.exe运行安装程序。
  2. 如果尚未下载安装程序(Docker Desktop Installer.exe),则可以从Docker Hub中获取它。 
  3. 按照安装向导上的说明接受许可证,授权安装程序,然后继续安装。
  4. 出现提示时,请在安装过程中使用您的系统密码授权Docker Desktop Installer。 需要特权访问才能安装网络组件,到Docker应用程序的链接以及管理Hyper-V VM。
  5. 在安装完成对话框上单击完成,然后启动Docker Desktop应用程序。

启动docker desktop

Docker Desktop在安装后不会自动启动。 要启动Docker Desktop,我们可以搜索Docker,然后在搜索结果中选择Docker Desktop。

windows下docker desktop的安装和使用

当状态栏中的鲸鱼图标保持稳定时,Docker desktop已经启动并运行,并且我们可以从任何终端窗口访问。

windows下docker desktop的安装和使用

我们可以创建docker账户,然后用docker账户登录docker desktop:

windows下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

可以得到下面的内容

windows下docker desktop的安装和使用

其中的hello-world就是刚刚落下来的image

5.list出hello-world 容器以及其他容器

> docker container ls --all

windows下docker desktop的安装和使用

如果去掉命令最后的--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的方式访问)

windows下docker desktop的安装和使用

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的方式。

windows下docker desktop的安装和使用

Kubernetes客户端命令kubectl已包括在内,并配置为连接到本地Kubernetes服务器。 如果我们自己安装了kubectl并指向其他环境,例如minikube或GKE集群,要确保更改上下文,以使kubectl指向docker-desktop:

 

 

 

 

 

 

相关标签: 容器技术