Dockerfile基础
https://github.com/DrSnowbird/intellij-vnc-docker
创建镜像
FROM majiajue/jdk1.8:latest
ubuntu替换国内源
RUN sed -i 's/archive.ubuntu.com/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list
-v /sys/fs/cgroup:/sys/fs/cgroup:rw \
https://github.com/ONLYOFFICE/Docker-DocumentServer
docker run -it --rm --network=host --privileged hokiegeek2/slurm-single-node
https://github.com/hokiegeek2/slurm-cloud-integration
service --status -all
nginx
# Step 1: Build the app in image 'builder'
FROM node:12.0.0-alpine AS builder
RUN npm config set registry https://registry.npm.taobao.org
RUN npm config set unsafe-perm true
RUN npm install -g @angular/cli
WORKDIR /usr/src/app
COPY . .
RUN npm install
RUN npm run build
# Step 2: Use build output from 'builder'
FROM nginx:stable-alpine
LABEL version="1.0"
COPY nginx.conf /etc/nginx/nginx.conf
WORKDIR /usr/share/nginx/html
COPY --from=builder /usr/src/app/dist/tower-web/ .
Sending build context to Docker daemon 11.63MB
Step 1/13 : FROM node:12.0.0-alpine AS builder
---> 80a733d0cd8c
Step 2/13 : RUN npm config set registry https://registry.npm.taobao.org
---> Running in fda21dc65a43
Removing intermediate container fda21dc65a43
---> 6200f536b9d5
Step 3/13 : RUN npm config set unsafe-perm true
---> Running in 466863834a09
Removing intermediate container 466863834a09
---> 68be4424035b
Step 4/13 : RUN npm install -g @angular/cli
---> Running in 4e11e44c2727
docker 添加hosts
docker run --add-host myhost1:192.168.0.100 --add-host myhost2:192.168.0.200 myimage
docker 容器内普通用户使用root权限
在 Docker 容器内,普通用户默认是没有 root 权限的。然而,你可以通过不同的方式让普通用户在容器内获得 root 权限。下面介绍两种常见的方法:
在容器中安装 sudo,并将普通用户添加到 sudo 组中,从而允许其使用 sudo 命令以 root 权限执行特定的命令。以下是一个示例 Dockerfile:
FROM ubuntu:latest
# 安装 sudo
RUN apt-get update && apt-get install -y sudo
# 添加普通用户到 sudo 组
RUN useradd -m myuser && echo "myuser ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers.d/myuser
# 切换到普通用户
USER myuser
# 在普通用户下执行需要 root 权限的命令
RUN sudo apt-get install -y package
另一种方法是在容器运行时使用 docker exec 命令以 root 用户身份执行命令。你可以在容器启动时使用 -u 参数指定要以哪个用户身份运行容器,然后使用 docker exec 命令以 root 身份进入容器进行操作。以下是一个示例:
docker run -u myuser -d myimage
docker exec -u root <container_id> <command>
如何在 Docker 中启用非特权用户的用户命名空间功能?
要在 Docker 中启用非特权用户的用户命名空间功能,你可以遵循以下步骤:
确保系统内核支持用户命名空间,并已启用相关配置。你可以检查 /proc/config.gz 或使用命令 zcat /proc/config.gz | grep CONFIG_USER_NS 来查看内核配置中是否启用了 CONFIG_USER_NS。
编辑 Docker 配置文件 /etc/docker/daemon.json(如果文件不存在则创建它),并添加以下内容:
{
"userns-remap": "<username>"
}
将
保存并关闭 Docker 配置文件。
重新启动 Docker 服务以使更改生效。可以使用以下命令重启 Docker 服务: