【发布时间】:2019-02-06 22:24:48
【问题描述】:
我正在尝试在我的 linux 机器上运行一些 docker 命令:
1- sudo docker load -i test.tar
2- sudo docker tag bf46cff9b182 test:v1.0
3- sudo docker run -it --network host -v /home/logs:/home/test/test/logs test:v1.0
但我想创建一个runme.sh 并一次性执行所有操作。问题是 ImageID bf46cff9b182 每次都在动态变化。所以我需要从load 命令的输出中以某种方式pipe 它,这实际上是可能的。
load的输出是这样的:
Loaded image ID: sha256:bf46cff9b1829b50e28f6485c923efff94799dd84cbf747dc86f6e5d006f2a81
在 Linux 上显示如下:
4f512fb4b0ea: Loading layer 5.079MB/5.079MB
Loaded image ID: sha256:b6c3df68a9365ccb0935a835aa332b29db780cb7e81eac83acf717b2 de779073
sha256 之后的 12 字符将是 bf46cff9b182,这将是我在上面的命令 #2 中插入的图像 ID。
如何编写 bash 命令自动执行此操作?
【问题讨论】:
-
顺便说一句,将自己添加到
docker组,这样您就不必一直使用sudo docker。如果您无论如何都必须是 root,那么容器的意义何在? -
我是 docker 新手。我该怎么做?
-
在 Debianish 平台上,
sudo adduser "$USER" docker其中$USER是您自己的帐户名。然后您可以exec sg docker加入群组,或退出并重新登录。其他平台可能有类似的安排,但可能在细节上有所不同。 -
是的,在我的 centos 上看起来不一样。会解决的谢谢!
-
docs.docker.com/install/linux/linux-postinstall 有一些说明。 projectatomic.io/blog/2015/08/… 似乎表明在 RPM 平台上默认情况下不启用此功能。
标签: linux bash docker awk docker-image