Win10安装docker环境

本文详细介绍了在64位Windows 10 Pro系统上安装Docker的步骤,包括检查虚拟化、启用Hyper-V、下载并安装Docker for Windows,以及配置Docker的国内镜像和存储位置。还提供了Docker基础命令的使用示例,帮助读者快速上手。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

环境准备

系统版本

64位Windows 10 Pro,专业版、企业版和教育版(1607纪念更新,版本14393或更高版本)上

如果版本不满足请安装Docker Toolbox,自行网上百度http://blog.youkuaiyun.com/tina_ttl/article/details/51372604

开启虚拟化(VT)

进入任务管理器(ctrl+alt+delete),点击性能->cpu ,查看虚拟化是否已启用,如果虚拟化是已禁用,那么你需要重启电脑进入bios开启虚拟化(自行百度自己电脑开启虚拟化方法)

启用Hyper-V功能

进入电脑的控制面板->程序->启用或关闭Windows功能->把Hyper-v勾上,启用后电脑会重启,后面就可以下载并安装Docker for Windows

下载 Docker-for-windows 

推荐下稳定版

https://hub.docker.com/editions/community/docker-ce-desktop-windows/

下载完成后,直接点击安装就可以,安装成功后右下角任务栏会有一个小鲸鱼的图标

检查是否成功

  1. 检查Docker,Compose的版本

  1. 检查版本信息,并确保docker命令正常工作

docker ps

docker version

docker info

配置Docker

切换国内镜像

右键点击鲸鱼图标,选择Setting菜单,打开docker配置页面,选择Docker Engine,将内容替换成下面的:

{ "registry-mirrors": [ "https://dockerhub.azk8s.cn", "https://reg-mirror.qiniu.com", "https://registry.docker-cn.com", "http://hub-mirror.c.163.com", "https://docker.mirrors.ustc.edu.cn" ], "insecure-registries": [], "debug": true, "experimental": false }

点击右下角“Apply& Restart” 按钮应用并重启

国内镜像替换完成了

存储位置

修改默认Docker镜像和虚拟机位置,C盘空间大的可以忽略此步骤

在C盘下找到如下目录

C:\用户\计算机名\AppData\Local

会找到一个Docker文件夹

打开任务管理器,结束所有跟docker有关的进程

结束进程后,将Docker文件夹剪切到其他目录中

打开CMD,目录切换到“C:\用户\计算机名\AppData\Local”

然后使用软链的方式将文件夹连接到“C:\用户\计算机名\AppData\Local”下

mklink /j Docker F:\DEV_FILE\docker\Docker

成功后可以看到,文件夹下多了快捷方式的小箭头

Docker基础命令

容器(container)相关基础命令

docker run ubuntu:18.04 /bin/bash #使用对应image创建container,同时进入对应bash(加上-i指定伪终端 -t允许交互)

docker exec [:containerId] /bin/bash #进入对应容器的bash

docker pull training/webapp #载入image

docker run -d -P training/webapp python app.py #运行指定container

docker run -d -p [:主机端口(默认32768)]:[:指定映射(flask默认 5000)] training/webapp python app.py #外部主机指定

docker ps #查看已运行的container

docker ps -a #查看所有container

docker ps -l #查看最后一次运行的container

docker port [:id/:name] #查看对应id/name container的端口映射

docker logs -f [:id/name] #查看container内部标准输出

docker top [:id/:name] #查看container内部运行进程

docker inspect [:id/:name] #返回container内部状态

docker stop [:id/:name] #停止container运行

docker stop $(docker ps -a -q) #停止所有container运行

docker ps -q #列出所有container的id

docker start [:id/:name] #重启container,注意和run的区别。

docker rm [:id/:name] #删除container。删除container时,container必须是停止状态,否则会报错

docker rm $(docker ps -a -q) #删除所有container

镜像(image)相关基础命令

docker images #列出所有images

docker pull [:镜像名:版本号] #拉取镜像

docker search [:镜像名] #搜取镜像,例如httpd

docker run [:镜像名] #直接使用镜像

docker run -i -t ubuntu:18.04 /bin/bash #进入一个bash Docker参数 -i -t 的作用

docker commit -m="[:message]" -a="[:author]" [:dockerId] [package/dockerName:version] #提交容器副本

docker rmi [:imageId] #删除镜像

docker rmi $(docker images -q) #删除所有镜像

docker build 原理

docker inspect [:containerId/:containerName] #查看dockerName对应信息

docker inspect -f '{{.Id}}' [:containerId/:containerName] #从信息JSON中取出Id

docker inspect $(docker inspect -f '{{.Id}}' containerName) #发现了docker可以像这样组合查询。

docker pull registry.cn-hangzhou.aliyuncs.com/kaibb/hadoop # 一个可用的hadoop容器镜

例如: docker run -i -t --name Master -h Master -p 50070:50070 registry.cn-hangzhou.aliyuncs.com/kaibb/hadoop /bin/bash

docker常用功能插件

  • Docker Dockerfile (通过脚本文件快速构建镜像)
  • Docker Compose 定义和运行多容器 Docker 应用程序的工具)

建议自行百度学习

使用示例

docker 部署nginx

1.拉取镜像

在拉取镜像之前我可以搜索一下镜像是否存在

$ docker search nginx

这里我们拉取官方的最新版本的镜像:

$ docker pull nginx:latest

查看本地镜像

$ docker images

在上图中可以看到我们已经安装了最新版本(latest)的 nginx 镜像。

2.运行容器

$ docker run --name nginx-test -p 8081:80 -d nginx

参数说明:

  • --name nginx-test:容器名称。
  • -p 8081:80: 端口进行映射,将本地 8080 端口映射到容器内部的 80 端口。
  • -d: 设置容器在在后台运行。
  • nginx: 使用nginx镜像

3.访问测试

最后我们可以通过浏览器可以直接访问 8080 端口的 nginx 服务:

其他配置,例如进入容器中调整nginx配置文件或者使用本地配置文件映射容器中文件,提高docker使用的便捷性,可自行百度

使用docker Compose部署jar启动项目

windows版docker自带docker compose 所以不用单独安装

编写docker-compose.yml文件

启动运行

$ docker-compose up -d

运行情况

以下使用docker for desktop查看,命令查看运行的方式,自行百度

右键小鲸鱼图标,选择Dashboard菜单

这时可以看到我们之前运行过的容器状态

通过右侧按钮我们可以进行操作

按钮依次是“在浏览器打开”、“进入容器控制台”、“停止容器运行”、“重启容器”、“删除容器”

点击容器,可以打开查看容器日志、运行参数、运行状态

docker run命令运行以及参数详解

Usage: docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

-d, --detach=false 指定容器运行于前台还是后台,默认为false

-i, --interactive=false 打开STDIN,用于控制台交互

-t, --tty=false 分配tty设备,该可以支持终端登录,默认为false

-u, --user="" 指定容器的用户

-a, --attach=[] 登录容器(必须是以docker run -d启动的容器)

-w, --workdir="" 指定容器的工作目录

-c, --cpu-shares=0 设置容器CPU权重,在CPU共享场景使用

-e, --env=[] 指定环境变量,容器中可以使用该环境变量

-m, --memory="" 指定容器的内存上限

-P, --publish-all=false 指定容器暴露的端口

-p, --publish=[] 指定容器暴露的端口

-h, --hostname="" 指定容器的主机名

-v, --volume=[] 给容器挂载存储卷,挂载到容器的某个目录

--volumes-from=[] 给容器挂载其他容器上的卷,挂载到容器的某个目录

--cap-add=[] 添加权限,权限清单详见:http://linux.die.net/man/7/capabilities

--cap-drop=[] 删除权限,权限清单详见:http://linux.die.net/man/7/capabilities

--cidfile="" 运行容器后,在指定文件中写入容器PID值,一种典型的监控系统用法

--cpuset="" 设置容器可以使用哪些CPU,此参数可以用来容器独占CPU

--device=[] 添加主机设备给容器,相当于设备直通

--dns=[] 指定容器的dns服务器

--dns-search=[] 指定容器的dns搜索域名,写入到容器的/etc/resolv.conf文件

--entrypoint="" 覆盖image的入口点

--env-file=[] 指定环境变量文件,文件格式为每行一个环境变量

--expose=[] 指定容器暴露的端口,即修改镜像的暴露端口

--link=[] 指定容器间的关联,使用其他容器的IP、env等信息

--lxc-conf=[] 指定容器的配置文件,只有在指定--exec-driver=lxc时使用

--name="" 指定容器名字,后续可以通过名字进行容器管理,links特性需要使用名字

--net="bridge" 容器网络设置:

bridge 使用docker daemon指定的网桥

host //容器使用主机的网络

container:NAME_or_ID >//使用其他容器的网路,共享IP和PORT等网络资源

none 容器使用自己的网络(类似--net=bridge),但是不进行配置

--privileged=false 指定容器是否为特权容器,特权容器拥有所有的capabilities

--restart="no" 指定容器停止后的重启策略:

no:容器退出时不重启

on-failure:容器故障退出(返回值非零)时重启

always:容器退出时总是重启

--rm=false 指定容器停止后自动删除容器(不支持以docker run -d启动的容器)

--sig-proxy=true 设置由代理接受并处理信号,但是SIGCHLD、SIGSTOP和SIGKILL不能被代理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值