You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从Windows 10主机远程在CentOS主机运行Docker命令创建容器?

实现方案:从Windows主机远程控制CentOS主机Docker并使用本地Dockerfile

当然可以实现!完全不用纠结docker-machine,Docker原生就提供了完美的解决方案,我给你一步步拆解操作:

第一步:给CentOS主机(主机B)的Docker开远程访问权限

首先得让主机B的Docker服务允许远程连接,操作如下:

  • 编辑Docker的守护进程配置文件/etc/docker/daemon.json(如果文件不存在就新建一个),写入以下内容:
    {
      "hosts": ["unix:///var/run/docker.sock", "tcp://0.0.0.0:2375"]
    }
    

    注意:如果是生产环境,强烈建议开启TLS加密(改用2376端口并配置证书),避免被未授权访问。上面的配置是测试用的非加密方式,方便快速验证。

  • 重启Docker服务让配置生效:
    sudo systemctl daemon-reload
    sudo systemctl restart docker
    
  • 如果主机B开了防火墙,记得开放2375端口:
    sudo firewall-cmd --add-port=2375/tcp --permanent
    sudo firewall-cmd --reload
    

第二步:在Windows主机(主机A)上配置远程Docker连接

有两种方式让你的PowerShell里的Docker命令指向主机B,选一种适合你的就行:

方式一:临时切换(适合单次操作)

打开PowerShell,设置环境变量:

$env:DOCKER_HOST = "tcp://<主机B的IP地址>:2375"

设置完后,当前PowerShell窗口里的所有Docker命令都会直接作用于主机B的Docker服务,关闭窗口后就恢复默认本地Docker。

方式二:持久化配置(适合长期使用)

用docker context创建一个专属的远程上下文,以后切换起来更方便:

  1. 创建指向主机B的上下文:
    docker context create centos-docker --docker "host=tcp://<主机B的IP地址>:2375"
    
  2. 切换到这个上下文:
    docker context use centos-docker
    
    之后所有Docker命令都会默认操作主机B的Docker,想切回本地Windows的Docker,执行docker context use default就可以了。

第三步:用主机A本地的Dockerfile在主机B创建容器

现在就可以直接在主机A上操作了!打开PowerShell,进入你的Dockerfile所在的目录,执行以下命令:

  • 先构建镜像(镜像会直接生成在主机B的Docker里):
    docker build -t my-custom-image .
    
  • 然后运行容器:
    docker run -d --name my-remote-container my-custom-image
    
    这里的.就是你主机A本地的Dockerfile所在目录,Docker会自动把当前目录的所有相关文件打包发送到主机B的Docker服务进行构建,完全不用把Dockerfile复制到主机B上。

小技巧:如果你的构建目录里有很多无关文件,可以新建一个.dockerignore文件,把不需要的文件/目录写进去,这样能减少传输的体积和时间。

内容的提问来源于stack exchange,提问作者Tanmay Bhattacharya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:40:56