公司的网站建设价格,无为教育网站,如何网站客户案例,wordpress 收邮件目录
1. 前提条件
2.安装Distrod
3. 常见问题
3.1.docker compose 问题无法使用问题
3.1. docker-compose up报错
参考文档 1. 前提条件
win10 WSL2 Ubuntu(截止202308最新版本是20.04.xx)
有不少的博客都是建议直接安装docker desktop#xff0c;这样无论在windows…目录
1. 前提条件
2.安装Distrod
3. 常见问题
3.1.docker compose 问题无法使用问题
3.1. docker-compose up报错
参考文档 1. 前提条件
win10 WSL2 Ubuntu(截止202308最新版本是20.04.xx)
有不少的博客都是建议直接安装docker desktop这样无论在windows下还是wsl2的Ubuntu子系统下都可以使用docker命令。
可实际上随着Docker desktop可能商业化而且和windows的兼容和性能问题越来越多公司和个人不太愿意继续安装Docker Desktop那么Distrod将是一个不错的替代产物。 图1 Win10系统已经启用了Wsl并且子系统还是Ubuntu20.04 2.安装Distrod
打开Terminal的进入Ubuntu控制台直接安装Distrod
# 先创建一个目录
sudo mkdir -p ~/distrod
# 进入目标目录
cd ~/distrod
# 安装Distrod
curl -L -O https://raw.githubusercontent.com/nullpo-head/wsl-distrod/main/install.sh
chmod x install.sh
sudo ./install.sh install继续在Ubuntu控制台执行
# 或者可以一劳永逸选择在Windows启动
/opt/distrod/bin/distrod enable --start-on-windows-boot# 此种不能在启动windows的时候启动
# /opt/distrod/bin/distrod enable
# 启动Docker服务
sudo systemctl enable docker.service sudo systemctl start docker.service# 或者
# sudo service docker start
3. 常见问题
3.1.docker compose 问题无法使用问题
如果你已经通过Distrod在WSL2上正确安装并运行了Docker但是Docker Compose报错可能需要检查Docker Compose的安装版本和配置。确保已经安装了与Docker兼容的Docker Compose版本最新的版本通常是可以的。Docker Compose的安装和Docker类似都是直接在WSL的Ubuntu子系统中安装。
首先在WSL Ubuntu 终端中移除已安装的docker-compose
sudo rm /usr/local/bin/docker-compose
然后下载最新版本的Docker Compose二进制文件并安装
sudo curl -L https://github.com/docker/compose/releases/download/2.1.1/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
sudo chmod x /usr/local/bin/docker-compose
这将在你的WSL Ubuntu子系统中安装Docker Compose的最新版本。你可以使用docker-compose --version来测试是否正确安装。
如果问题仍然存在可以尝试对Docker Compose环境进行调试或者尝试重装Distrod和Docker。在安装和使用中遇到问题时有时候症状会模糊无法准确诊断问题来源因此可能需要多次尝试才能找到解决问题的方法。
另外一种简单的尝试是安装Docker Compose作为一个python包使用pip
sudo pip install docker-compose
注意: 使用这种方法时需要确保pip版本是最新的且Python环境配置正常。
最后报错信息是非常有用的在解决问题的过程中务必注意保存和参考。
3.1. docker-compose up报错 pip安装后执行一个docker-compose.yaml后启动mysql容器报错 Pulling mysql8.0 (mysql:8.0.21)... Traceback (most recent call last): File docker-compose, line 3, in module File compose/cli/main.py, line 81, in main File compose/cli/main.py, line 202, in perform_command File compose/metrics/decorator.py, line 18, in wrapper File compose/cli/main.py, line 1188, in up File compose/cli/main.py, line 1184, in up File compose/project.py, line 671, in up File compose/service.py, line 359, in ensure_image_exists File compose/service.py, line 1291, in pull File compose/progress_stream.py, line 99, in get_digest_from_pull File compose/service.py, line 1258, in _do_pull File docker/api/image.py, line 411, in pull File docker/auth.py, line 48, in get_config_header File docker/auth.py, line 324, in resolve_authconfig File docker/auth.py, line 235, in resolve_authconfig File docker/auth.py, line 262, in _resolve_authconfig_credstore File docker/auth.py, line 287, in _get_store_instance File docker/credentials/store.py, line 25, in __init__ docker.credentials.errors.InitializationError: docker-credential-desktop.exe not installed or not available in PATH [11595] Failed to execute script docker-compose 这个错误是因为docker-compose试图从docker-credential-desktop获取凭据但是失败了因为你的环境中没有这个原因是你的系统中并没有安装Docker Desktop。
在你的场景中下面是解决此问题的步骤
1. 在你的.bashrc或.zshrc 文件中添加以下环境变量
export DOCKER_HOSTtcp://localhost:2375
这样就可以使docker和docker-compose知道在哪里寻找docker daemon。
2. 删除~/.docker/config.json 文件或者编辑此文件删除里面 credsStore: desktop, 这一行。
然后运行 source ~/.bashrc 或者 source ~/.zshrc 让环境变量生效并尝试再次运行docker-compose命令。
这样应该可以解决你的问题。
参考文档
ChatGPT
如何不安装Docker Desktop在WSL下运行Docker - 知乎