docker - 我不知道如何做同样的事情拉,创建和启动,而不是 docker run -dti
问题描述
使用来自https://hub.docker.com/_/php的图像。
使用 docker run -dti 创建并启动 hogehoge-php 容器
% docker run -dti --name hogehoge-php php
然后我可以看到hogehoge-php
容器已启动并正在运行。
确认的:
% docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2c9e7ff1a952 php "docker-php-entrypoi..." 6 seconds ago Up 5 seconds ago hogehoge-php
尝试拉,创建和启动
我读到这docker run
是一个同时执行docker pull
,docker create
和的命令docker start
。所以我决定尝试如下(我没有这样做,docker pull
因为我已经有一个本地 php 图像)。
% docker create --name foofoo-php php
c7687c088dda9b71d9380e9ca472afa436ac63785c1d2c195b8a08147f8adec9
% docker start foofoo-php
foofoo-php
% docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c7687c088dda php "docker-php-entrypoi..." 16 seconds ago Exited (0) 3 seconds ago foofoo-php
当我按照上面的方法尝试时,我得到了Exited (0) 3 seconds ago
,并且foofoo-php
创建的容器docker create
并没有一直站起来。
由 制造的foofoo-php
容器docker create
无法站立(选项不可用)。
% docker start -dti foofoo-php
unknown shorthand flag: 'd' in -dti
See 'docker start --help'.
该i
选项可用,我能够运行它,但它不会让 docker 运行。
% docker start -i foofoo-php
Interactive shell
% docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c7687c088dda php "docker-php-entrypoi..." 3 minutes ago Exited (0) 5 seconds ago foofoo-php
我怎么能create
而start
不是run -dti
?
顺便说一句,我试过没有 -dti 的 docker run
顺便说一句,我试过docker run
没有-dti
.
% docker run --name barbarbar-php php
Interactive shell
% docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6215c71a13a4 php "docker-php-entrypoi..." 15 seconds ago Exited (0) 15 seconds ago barbar-php
容器已创建,但它没有站立。我想我应该尝试docker start
:
% docker start barbar-php
barbar-php
% docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6215c71a13a4 php "docker-php-entrypoi…" 33 seconds ago Exited (0) 3 seconds ago barbar-php
但容器没有启动。
另一方面,停止并启动由 docker run -dti 创建的容器
另一方面,尝试stop
创建start
一个容器docker run -dti
,它在启动后运行起来。
% docker stop hogehoge-php
hogehoge-php
% docker start hogehoge-php
hogehoge-php
% docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6215c71a13a4 php "docker-php-entrypoi…" 4 minutes ago Exited (0) About a minute ago barbar-php
c7687c088dda php "docker-php-entrypoi…" 11 minutes ago Exited (0) 8 minutes ago foofoo-php
2c9e7ff1a952 php "docker-php-entrypoi…" 14 minutes ago Up 2 seconds hogehoge-php <----- Here
行为总结
- 码头运行
- 带有 dit 选项
- 跑步后起来
- 启动后起来
- 没有 dit 选项
- 跑步后不起来
- 开始后不起来
- 带有 dit 选项
- 码头工人创建
- 跑步后不起来
解决方案
您缺少的是docker create -t
为您的容器分配一个伪 TTY。
由于您正在运行的图像的入口点是在前台运行的 php shell,因此容器在启动时会发现它没有 tty 可以附加到 0 的出口。
docker pull php
docker create -t --name hogehoge-php php
docker start hogehoge-php
推荐阅读
- c# - 网站用户填写后保存pdf到数据库
- javascript - 通过映射到子 html 元素来呈现响应数据...使用 React 和更新状态
- java - 为我的程序实现一个数据结构
- r - R:遍历列,从列中选择值并将其写入同一行的新列
- f# - 初始化 Azure Cosmos DB 连接和 upsert 数据
- angular - 如何使用纯管道仅在从数组 Angular 添加/删除单个对象时触发重新渲染?
- c# - Mono 发行版中的 C# 编译器版本是否与 Mono 版本相同?
- java - 将通过使用 Spring Security 和 Spring Boot 应用程序进行身份验证生成的授权代码发送到哪里?
- tensorflow - TensorFlow 对象检测 API 增强
- python - pandas groupby,如果组键在它们之间发生更改,则组键将被单独处理