Docker安装
第一步:在docker官网下载对应版本
Docker: Accelerated Container Application Development

点击右上角Docs,在左侧下拉Docker Desktop-Setup-Install 可以在里面寻找适合自己操作系统的安装包。Mac电脑安装解压即可,linux安装方式较多,推荐使用yum等包管理器安装,具体可以参考官方文档的安装教程。接下来介绍windows安装教程

第二步:开启windows功能
Windows安装Docker需要提供Linux环境,即需要开启Hyper-v或虚拟机平台&适用于Linux的windows系统功能(这种实现需要提前配置wsl2,当然也要安装对应的linux发行版,可以寻找相关教程或参考Microsoft提供的文档),这里可以在控制面版的程序-启用或关闭windows功能处开启:

windows家庭版通常不会有Hyper-v和虚拟器平台二者选项,以下是根据ai提供的开启教程(win11家庭版亲测有效)
开启虚拟机平台:
使用管理员权限打开power shell,然后输入以下指令:
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
开启Hyper-v:
同样是在power shell:
Get-ChildItem -Path $env:SystemRoot\servicing\Packages -Filter *Hyper-V*.mum | Select-Object -ExpandProperty Name | Out-File -FilePath .\hyper-v.txt
foreach ($package in Get-Content -Path .\hyper-v.txt) {
dism /online /norestart /add-package:"$env:SystemRoot\servicing\Packages\$package"
}
Remove-Item -Path .\hyper-v.txt
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All -NoRestart
Read-Host -Prompt "按任意键继续..."
重启后就能生效。
第三步:运行Docker Desktop安装包
在配置阶段据说有勾选"Use WSL2 instead of Hyper-V"选项,勾选这个选项表示使用wsl2来实现docker,否则使用hyper-v。(但本人没有遇见这个界面,因为提前配置了WSL2,直接安装后同样有可视化界面)
第四步:配置镜像加速
以下方法基于docker desktop:在setting-Docker Engine中添加配置项
"registry-mirrors": [
"https://hub-mirror.c.163.com",
"https://docker.1ms.run"
]
这只是个示例,其中可以配置多个镜像源,如果原来使用的镜像源过期了无法加速,更换另一个即可,配置效果如下:

可用镜像源检测网站:https://status.1panel.top/status/docker
基础用法与指令
起步指令
在安装好docker之后,直接使用cmd即可执行docker命令,最基础的拉取命令结构如下:
docker run [Opitions] image [command] [arg...]
#常见opition有:-a(指定标准输入输出类型) -d(后台运行容器,并返回id) -P(随机端口映射) -p(指定端口映射,格式:主机端口:容器端口) --name="name"(为容器指定名称) -v,--volume(绑定卷)
#image是镜像文件
容器管理
docker ps [-a]#目前正在运行的容器列表,加上-a会列出所有容器,包括停止容器
docker stop id/name #停止指定容器
docker start id/name #拉起指定容器
docker restart id/name #重启指定容器
dokcer rm id/name #删除指定容器
镜像基础管理
管理镜像有四种常见操作:
1.使用以下命令
docker pull 仓库名/镜像名
可以在dockerhub上拉取指定仓库里的指定镜像,然后通过上文的run指令来运行容器(具体指令需根据具体需求调制,可以参考ai)
2.使用镜像作者提供的tar文件导入
#导出为tar文件
docker save 镜像id > xxxx.tar
#导入tar文件
docker load < xxxx.tar
3.使用dockerfile来生成镜像
dockerfile是面向开发的构建文件,通过他可以构建生成镜像,常见命令有:
#基础镜像源,从此构建
from
#镜像维护者信息
maintainer
#镜像构建需要运行的命令
run
#添加内容,可自动解压
add
#镜像的工作目录
workdir
#挂载卷
volume
#对外指定端口
expose
#指定容器启动时运行的命令,只有最后一个命令会生效,可被替代
cmd
#和cmd类似,可以追加命令
entrypoint
#类似add,将文件拷贝到镜像
copy
#构建时设置环境变量
env
4.将容器保存为镜像
docker commit id name
同样,我们可以使用指令来查看本地的所有镜像
docker image ls
也可以使用指令来删除镜像
docker rmi name/id
Portainer
Docker的一个可视化页面,可以方便的查看容器及其状态,也可以执行拉取镜像的指令。
配置方法:直接在cmd执行
docker run -d -p 8000:8000 -p 9000:9000 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:2.20.3-alpine
即可成功拉取到portainer。
在本地主机可直接输入localhost:9000来查看是否成功(有时会出现报错提示restart portainer才能继续,照做即可)
、
local代表的就是本地主机,进入后即可对容器进行管理和操作
默认镜像存储路径更改
新版本旧方法失效
一开始没注意这个问题,直到在做项目的时,在本地用compose文件部署开发环境的时候,发现镜像拉不下来了,一检查发现是磁盘空间不够了,才发现c盘不知不觉就被挤满了。于是我就去网上搜教程:发现使用wsl2实现的docker更改存储位置的方法基本都是通过重新导入data文件到其他盘来实现的,即使用类似于下面的指令:
wsl --export docker-desktop-data "F:\wsl\docker-data\docker-desktop-data.tar"
但是我后来发现我的docker根本找不到data文件,使用上面的指令也运行不了,在网上找了很久也没找到相应的解决方法。

要么就是让在docker engine文件里加入data-root设置的,但依旧没能解决问题。
成功更改!
直到后来,在翻b站时,发现很多人和我遇到了一样的问题,而新版本docker_data的路径应该在"C:\Users\用户名\AppData\Local\Docker\wsl\disk"下面。但是问题还是没有解决,直接手动移动整个文件夹并不能成功更改存储路径,还直接让docker engine炸掉了。于是最终,我去查阅官方文档才知道,新版docker直接在Setting->Advanced里就可以直接更改镜像的存储路径。(之前在某个地方似乎听说过在setting里更改没有作用,但我实操之后确实成功了)

更改后的docker_data路径:

当然以上操作都是基于windows+wsl2的方法,其他操作系统暂时没使用过,但应该网上提供的教程也比较全面,不会像这样这么麻烦。

5万+

被折叠的 条评论
为什么被折叠?



