首页 > 解决方案 > 如何在一个 shell 脚本中安装和使用 docker?

问题描述

我需要在一个脚本中安装 docker 并登录到我的存储库。我使用的是 ubuntu 16.04,但也可以使用 18.04。

docker_setup.sh:

sudo apt-get install -y docker.io
sudo service docker start
sudo usermod -a -G docker ubuntu
exec sudo su -l ubuntu
docker login -u $DOCKER_USER -p $DOCKER_PW

这在 shell 脚本中不起作用,因为该sudo su命令会打开一个子 shell。newgrp docker出于同样的原因,我不能这样做。另外,我不能做类似的事情

newgrp docker << DOCKERSUBHSELL
docker login -u $DOCKER_USER -p $DOCKER_PW
DOCKERSUBSHELL

因为我正在使用ray 库,并且该库的后面部分(在引擎盖下工作)也希望能够使用 docker 命令。有解决方案吗?

标签: bashdockerray

解决方案


这很容易。你可以像这样制作一个 shell 脚本,但你必须使用 cat 和 EOF。让我解释。

pi@raspberry$ sudo ./script.sh

该脚本将包含以下输出

cat << EOF | sudo apt-get install -y docker.io
   sudo service docker start
   sudo usermod -a -G docker ubuntu
   exec sudo su -l ubuntu
   exit
   docker login -u $DOCKER_USER -p $DOCKER_PW
   EOF

如果此命令“docker login -u $DOCKER_USER -p $DOCKER_PW”设置为在 ubuntu 用户中执行,然后从我的 bash 脚本中删除“exit”,你就完成了。

让我知道它是否有效或结果,以便我可以进一步修改它并为您提供帮助。谢谢 :)


推荐阅读