docker使用
要在 Windows 系统中运行这条 Docker 命令,你需要做一些调整,尤其是路径和环境变量的引用。以下是在 Windows 中的具体操作步骤,适用于 PowerShell 和 CMD。
在 PowerShell 中运行
打开 PowerShell:
在 Windows 上按
Win + X
,然后选择Windows PowerShell
,或者在开始菜单中搜索PowerShell
并打开。
导航到工作目录:
使用
cd
命令导航到你想要挂载到容器中的目录。例如:powershell
复制代码
cd C:\Users\YourName\Projects\MyProject
运行 Docker 命令:
在 PowerShell 中运行以下命令:
powershell
复制代码
docker run --name dev -v ${PWD}:/mnt -p 8888:8888 -it paddlecloud/paddlenlp:develop-cpu-cdd682 /bin/bash
这里,
${PWD}
是 PowerShell 中表示当前目录的变量,Docker 将把该目录挂载到容器内的/mnt
目录。
在 CMD 中运行
打开 CMD:
按
Win + R
,输入cmd
,然后按回车,或在开始菜单中搜索cmd
并打开命令提示符。
导航到工作目录:
使用
cd
命令导航到你的项目目录。例如:cmd
复制代码
cd C:\Users\YourName\Projects\MyProject
运行 Docker 命令:
在 CMD 中,运行以下命令:
cmd
复制代码
docker run --name dev -v %cd%:/mnt -p 8888:8888 -it paddlecloud/paddlenlp:develop-cpu-cdd682 /bin/bash
在 CMD 中,
%cd%
代表当前工作目录,类似于 PowerShell 中的${PWD}
。此处可以
解释和注意事项
路径映射:
-v ${PWD}:/mnt
或-v %cd%:/mnt
选项用于将 Windows 系统中的当前目录挂载到容器内的/mnt
目录。这意味着你可以在容器内访问和操作当前目录中的文件。端口映射:
-p 8888:8888
选项将主机的 8888 端口映射到容器的 8888 端口。这通常用于运行 Jupyter Notebook 或其他需要通过浏览器访问的服务。镜像说明:
paddlecloud/paddlenlp:develop-cpu-cdd682
是使用 PaddleNLP 的 CPU 版本镜像,cdd682
可能是镜像的版本标识。
运行结果
执行以上命令后,你将进入 Docker 容器的 Bash 终端,在这个终端中,你可以运行需要的命令或程序。容器中的 /mnt
目录将对应到你主机上的当前目录,主机的 8888 端口将与容器的 8888 端口连接。
ERROR solve
如果出现Unable to find image 'paddlecloud/paddlenlp:develop-cpu-cdd682' locally 属于正常现象,他会自己下载,当然也可以手动下载,
docker pull paddlecloud/paddlenlp:develop-cpu-cdd682
出现以下错误Digest: sha256:75ad0db5cb8c207711349917c4e55f10ac795268f8cfe80a1f85bf23a5e8422c Status: Downloaded newer image for paddlecloud/paddlenlp:develop-cpu-cdd682 docker: Error response from daemon: create %cd%: "%cd%" includes invalid characters for a local volume name, only "[a-zA-Z0-9][a-zA-Z0-9_.-]" are allowed. If you intended to pass a host directory, use absolute path. See 'docker run --help'.
错误消息表明 Docker 在创建本地卷(即你要挂载到容器内的目录)时,遇到了无效的路径名称。具体来说,%cd%
被认为是无效的卷名。
. 使用绝对路径
手动将 %cd%
替换为当前目录的绝对路径。例如,如果你当前的目录是 C:\Users\YourName\Projects\MyProject
,你可以这样运行:
docker run --name dev -v C:\Users\YourName\Projects\MyProject:/mnt -p 8888:8888 -it paddlecloud/paddlenlp:develop-cpu-cdd682 /bin/bash