Linux Docker:终端提示中的用户更改
我正在查看,遇到以下警告:Linux Docker:终端提示中的用户更改,linux,security,docker,Linux,Security,Docker,我正在查看,遇到以下警告: sudo docker run-p 80:80-t-i linode/lamp/bin/bash注意:此命令还将终端提示更改为新容器中的root用户。 假设我有以下Dockerfile FROM alpine:3.3 RUN apk --update add \ build-base python-dev \ ca-certificates python &&\ adduser -D -u 1001 not_root
sudo docker run-p 80:80-t-i linode/lamp/bin/bash
注意:此命令还将终端提示更改为新容器中的root用户。
假设我有以下Dockerfile
FROM alpine:3.3
RUN apk --update add \
build-base python-dev \
ca-certificates python &&\
adduser -D -u 1001 not_root
USER not_root
CMD ["/bin/sh"]
当我在这个容器中运行一些python代码(从卷中加载并通过docker run
执行)时,它会作为非root用户执行
但是,当我后来做了一个
docker exec-it-u root,即_container/bin/sh
以手动安装一个包时,比如说出于测试目的,正在运行的容器是否仍然以docker start
或docker run
的形式运行?或者,docker exec
是否会更改活动用户?否,执行docker exec
不会修改容器中运行的现有进程:
bash$ docker run -u 1000 -d --name=top busybox top
fba16b1460ed53673002e81d8592f63dd1df1f90809b7046671b453bb59b1668
bash$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
fba16b1460ed busybox "top" 5 seconds ago Up 2 seconds top
bash$ docker exec -u root -it top /bin/sh
/ # ps -a
PID USER TIME COMMAND
1 1000 0:00 top
7 root 0:00 /bin/sh
13 root 0:00 ps -a