有没有启动Docker Desktop的命令行

windows11 用wsl2安装的Docker Desktop 想写个脚本自动启动Docker Desktop和容器 但是没有查到启动Docker Desktop的命令行

开始菜单直接搜索 Docker Desktop 打开,然后在主界面上点Settings,进入设置页面。你找找“General”标签页,里面有个“Expose daemon on tcp://localhost:xxxx without TLS”(xxxx是端口号)的选项。勾选保存,就命令行中使用docker run试试

在 Windows 11 上,Docker Desktop 使用 WSL 2 作为后端运行。这意味着您可以直接通过 WSL 2 启动 Docker 守护进程,而无需单独启动 Docker Desktop 应用程序。当您安装了 Docker Desktop 时,Docker 实际上已经在 WSL 2 发行版中安装好了。

要启动 Docker 守护进程,您可以打开一个 PowerShell 或命令提示符窗口,并运行以下命令:

wsl -d docker-desktop

然后,您可以使用 docker 命令来管理和操作 Docker 容器。例如,要启动一个名为 my-container 的容器,您可以运行:

docker start my-container

要创建一个启动脚本,您可以将这些命令放在一个批处理文件(.bat)或 PowerShell 脚本(.ps1)中。例如,创建一个名为 start-docker.ps1 的 PowerShell 脚本,内容如下:

wsl -d docker-desktop
docker start my-container

然后,您可以双击该脚本文件或在 PowerShell 窗口中运行它,以启动 Docker 守护进程和容器。请注意,您可能需要以管理员身份运行 PowerShell,以确保具有足够的权限来启动 Docker 守护进程。



```shell
#!/bin/bash

# Start Docker Desktop
echo "Starting Docker Desktop..."
nohup /mnt/c/Program\ Files/Docker/Docker/Docker\ Desktop.exe >/dev/null 2>&1 &

# Wait for Docker Desktop to start
echo "Waiting for Docker Desktop to start..."
while ! docker info &>/dev/null; do sleep 1; done

# Run a sample container
echo "Running hello-world container..."
docker run --rm hello-world

```

根据需要自己做下修改

  • 给你找了一篇非常好的博客,你可以看看是否有帮助,链接:Windows使用WSL2安装Docker Desktop
  • 以下回答由chatgpt基于相关博客总结生成:

    我可以提供以下解决方案: 1. 安装Docker Desktop

    根据参考资料中的步骤进行安装,注意使用WSL2安装Docker Desktop。

    1. 自动启动Docker Desktop

    创建一个systemd脚本用于启动Docker Desktop。

    # 创建systemd文件
    sudo touch /etc/systemd/system/docker.service
    # 编辑systemd文件
    sudo vim /etc/systemd/system/docker.service
    

    将以下内容复制粘贴到docker.service文件中:

    [Unit]
    Description=Docker Service
    Requires=docker.socket
    After=network.target
    
    [Service]
    ExecStart=/mnt/c/Program\ Files/Docker/Docker/Docker Desktop.exe --run-service --start --experimental-vm
    Restart=on-failure
    TimeoutSec=90s
    
    [Install]
    WantedBy=default.target
    

    保存退出,执行以下命令:

    # 启用 Docker 服务
    sudo systemctl enable docker.service
    # 启动 Docker 服务
    sudo systemctl start docker.service
    # 检查 Docker 服务状态
    sudo systemctl status docker.service
    

    如果状态显示为 active (running) 则说明启动成功。

    1. 自动启动容器

    创建一个systemd脚本用于自动启动容器。

    # 创建systemd文件
    sudo touch /etc/systemd/system/my_container.service
    # 编辑systemd文件
    sudo vim /etc/systemd/system/my_container.service
    

    将以下内容复制粘贴到my_container.service文件中:

    [Unit]
    Description=My Container Service
    Requires=docker.service
    After=docker.service
    
    [Service]
    Restart=on-failure
    TimeoutStartSec=0
    WorkingDirectory=/home/myuser/mycontainer
    ExecStartPre=/usr/bin/docker stop my_container
    ExecStartPre=/usr/bin/docker rm my_container
    ExecStart=/usr/bin/docker run --name my_container my_image
    ExecStop=/usr/bin/docker stop my_container
    ExecStopPost=/usr/bin/docker rm my_container
    ExecReload=/usr/bin/docker restart my_container
    
    [Install]
    WantedBy=multi-user.target
    

    其中,my_container是容器的名称,my_image是容器的镜像名称。

    保存退出,执行以下命令:

    # 启用容器服务
    sudo systemctl enable my_container.service
    # 启动容器服务
    sudo systemctl start my_container.service
    # 检查容器服务状态
    sudo systemctl status my_container.service
    

    如果状态显示为 active (running) 则说明启动成功。

    这样就完成了自动启动Docker Desktop和其内部的容器的设置。