docker使用普通用户启动容器并挂载本地目录

本文介绍了如何在CentOS7系统中通过Dockerfile创建一个以非root用户启动的镜像,并挂载本地目录。步骤包括编写Dockerfile以创建用户、修改权限,然后构建镜像并以指定用户运行容器,同时挂载本地目录到容器内的/opt目录。
摘要由CSDN通过智能技术生成

docker使用普通用户启动容器并挂载本地目录

1 、背景

一般docker镜像构建成功之后,使用镜像启动容器时默认使用的是root权限,为了安全起见,需要将root用户权限改为普通用户。

2、 环境

centos 7系统

3、编写Dockerfile文件

要点:需要在容器里创建用户并且指定用户

#基础镜像
FROM jdk:8-slim
#修改人信息
MAINTAINER hongcb@10086.com
#创建用户,-d表示用户目录,-m自动建立用户的登入目录,mcbadm用户名
RUN useradd -d /home/mcbadm -m mcbadm
#项目产生的日志文件在/opt目录下,为了用普通用户可以挂载到本地,需要修改日志权限
RUN chmod 777 -R /opt && \
chown mcbadm:mcbadm -R /opt
#指定用户
USER mcbadm
#复制jar文件到容器中(当前路径就是Dockerfile所在之处,所以这里用ROOT/XX)
ADD --chown=mcbadm inter-pre-file-0.0.1-SNAPSHOT.jar /home/mcbadm/app.jar
ADD --chown=mcbadm application.properties /home/mcbadm/application.properties
ADD --chown=mcbadm logback-spring.xml /home/mcbadm/logback-spring.xml
#设置语言
ENV LANG C.UTF-8
#指定容器内时间
ENV TZ=Asia/Shanghai
#指定JVM参数
ENV JAVA_OPTS="\
-server \
-Xms1024m \
-Xmx1024m"
ENTRYPOINT java ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom -Dspring.config.location=/home/mcbadm/application.properties -jar /home/mcbadm/app.jar
4、构建镜像
docker build -t file:1 .
5、运行容器
#-it交互模式 -d后台运行 --name 容器名字
#-v 本地路径:容器路径
docker run -it -d --name file1 -v /home/mcbadm:/opt/mcb/wjjzh/var/log file:1
6、检查
#查看容器日志
#docker logs 容器名
docker logs file11

#进入容器查看
[root@Ryan inter-pre-file]# docker exec -it file1 /bin/bash
[mcbadm@d1abc5e8fbf3 /]$ whoami
mcbadm
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值