通常,使用用户root运行docker容器.我想使用不同的用户,使用docker的USER指令没问题.但是这个用户应该能够在容器内使用sudo.缺少此命令.
这是一个简单的Dockerfile用于此目的:
FROM ubuntu:12.04
RUN useradd docker && echo "docker:docker" | chpasswd
RUN mkdir -p /home/docker && chown -R docker:docker /home/docker
USER docker
CMD /bin/bash
Run Code Online (Sandbox Code Playgroud)
运行此容器,我使用用户'docker'登录.当我尝试使用sudo时,找不到该命令.所以我尝试使用在我的Dockerfile中安装sudo包
RUN apt-get install sudo
Run Code Online (Sandbox Code Playgroud)
这导致无法找到包sudo
有没有办法只使用Docker Compose在容器中启动交互式shell?我在docker-compose.yml中试过这样的东西:
myapp:
image: alpine:latest
entrypoint: /bin/sh
Run Code Online (Sandbox Code Playgroud)
当我使用docker-compose启动此容器时,它会立即退出.是否有任何可以添加到entrypoint命令的标志,或作为myapp的附加选项,以启动为交互式shell?
我知道有一些原生的docker命令选项来实现这一点,只是好奇,如果它也可以只使用Docker Compose.