相关疑难解决方法(0)

在Docker Alpine容器中启动shell

要为Ubuntu映像启动交互式shell,我们可以运行:

ole@T:~$ docker run -it --rm ubuntu
root@1a6721e1fb64:/# ls
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
Run Code Online (Sandbox Code Playgroud)

但是当为Alpine Docker镜像运行时,会产生以下结果:

ole@T:~$ docker run -it --rm alpine
Error response from daemon: No command specified
Run Code Online (Sandbox Code Playgroud)

在Alpine基础容器中启动交互式shell的命令是什么?

linux containers docker alpine-linux

131
推荐指数
4
解决办法
11万
查看次数

无用的猫吗?

这可能是许多常见问题解答 - 而不是使用:

cat file | command
Run Code Online (Sandbox Code Playgroud)

(这被称为无用的猫),正确的方式应该是:

command < file
Run Code Online (Sandbox Code Playgroud)

在第二,"正确"的方式 - 操作系统不必产生额外的过程.
尽管知道这一点,我继续使用无用的猫有两个原因.

  1. 更美观 - 我喜欢数据仅从左到右均匀移动.而且它更容易更换cat别的东西(gzcat,echo,...),添加第二个文件或插入新的过滤器(pv,mbuffer,grep...).

  2. 我"觉得"在某些情况下可能会更快.更快,因为有2个进程,1st(cat)执行读取而第二个执行任何操作.它们可以并行运行,这意味着有时可以更快地执行.

我的逻辑是否正确(第二个原因)?

shell command-line cat

90
推荐指数
8
解决办法
2万
查看次数

从docker运行更长的命令

我正在使用Docker动态编写文件并运行它.到目前为止命令看起来像这样(只是为了先测试这个想法):

docker run dockerfile/python cat <<EOF >hi.txt && tail hi.txt
> hi there
> EOF
Run Code Online (Sandbox Code Playgroud)

出于某种原因,这不会回应任何事情.

如果我在没有HEREDOC的情况下运行此命令,那么它会输出结果.例如,以下工作:

docker run dockerfile/python cat > hi.txt && ls
hi.txt
Run Code Online (Sandbox Code Playgroud)

如何输出多行运行命令/ HEREDOC的结果.

bash zsh docker dockerfile

6
推荐指数
2
解决办法
4829
查看次数

在Docker容器中使用管道运行内联命令

我想在Docker容器中运行一组命令,例如:

docker run -i <image> cmd1 | cmd2
Run Code Online (Sandbox Code Playgroud)

两者cmd1cmd2都应在容器内运行。

可能吗?如果没有,有哪些替代方案?

bash pipe command-line-interface docker

5
推荐指数
0
解决办法
5072
查看次数