bash - 问题:在 docker 中运行 ubuntu bash shell 时出错
问题描述
我在基于 arm 的 32 位设备上运行 docker。
但是,当我尝试通过命令 : 将 ubuntu bash shell 作为 docker 容器运行时docker run -it ubuntu bash
,我不断收到以下错误:
docker: Error response from daemon: OCI runtime create failed:
container_linux.go:348: starting container process caused
"process_linux.go:402: container init caused \"open /dev/ptmx: no such file or directory\"": unknown.
这是docker info
给出的:
Containers: 4
Running: 0
Paused: 0
Stopped: 4
Images: 3
Server Version: 18.06.1-ce
Storage Driver: vfs
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge host macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 468a545b9edcd5932818eb9de8e72413e616e86e
runc version: 69663f0bd4b60df09991c08812a60108003fa340
init version: fec3683
Security Options:
seccomp
Profile: default
Kernel Version: 3.10.65-00273-gfa38327-dirty
OSType: linux
Architecture: armv7l
CPUs: 4
Total Memory: 923MiB
ID: 2PDV:3KHU:VZZM:DM6F:4MVR:TXBN:35YJ:VWP5:TMHD:GMKW:TPMI:MALC
Docker Root Dir: /opt/usr/media/docker_workdir
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false
如果有人能告诉我出了什么问题以及我该如何解决这个问题,那就太好了?
解决方案
看起来您的操作系统缺少伪终端 (PTY) - 一种具有物理终端功能但实际上并非其功能的设备。
文件/dev/ptmx是一个字符文件,主编号为 5,次编号为 2,通常模式为 0666,owner.group 为 root.root。它用于创建伪终端主从对。
文件
- /dev/ptmx - UNIX 98 主克隆设备
- /dev/pts/* - UNIX 98 从设备
- /dev/pty[p-za-e][0-9a-f] - BSD 主设备
- /dev/tty[p-za-e][0-9a-f] - BSD 从设备
参考: http: //man7.org/linux/man-pages/man7/pty.7.html
这默认包含在 Linux 内核中。也许缺少它与您的操作系统架构有关。另外,我不确定您如何修复,也许尝试更新&&升级操作系统。
如果您不需要 tty,则快速解决方法是跳过-t
标志:
docker run -i ubuntu bash
在docker run -it
, 中-i/--interactive
表示“保持标准输入打开”并-t/--tty
表示“告诉容器标准输入是伪 tty”。这里的关键是“交互式”这个词。如果省略该标志,容器仍会执行/bin/bash
但立即退出。使用该标志,容器将执行,/bin/bash
然后耐心等待您的输入。这意味着现在您将在容器内拥有 bash 会话,因此您可以ls
在mkdir
容器内执行任何 bash 命令。
推荐阅读
- reactjs - useState React 传递颜色
- java - 在 Tomcat 10.x 上部署 Spring 5.x
- flutter - Flutter - 对带有模型的图表使用 API
- git - 如何克隆到 git 存储库中的特定标签,而不包括该标签之后的历史记录或提交?
- vb.net - 问题将百分比转换为成绩 - 所有结果均显示为 A
- javascript - Cookie 未保存在浏览器中,但与邮递员一起工作正常
- avd - Android 虚拟设备重置相机位置
- ios - UIKitCore 位置?
- pandas - 通过应用将元组传递给函数
- excel - 如何从 Excel、VBA 复制和粘贴内容 Word 文档