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

docker挂载本地目录和数据卷容器 1、docker挂载本地目录 docker可以支持把一个宿主机上的目录挂载到镜像里。 交互模式运行docker run -it -v /home/dock/Downloads:/usr/Downloads ubuntu64 /bin/bash后台运行docker run -d -v /home/dock/Downloads:/usr/Downloads --name ubuntu1 ubunt 阅读详情

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
【Nginx】在Linux服务器中使用docker安装nginx并配置挂载目录 1.docker下载nginx镜像 docker pull nginx 【version】 version默认为latest,即最新版本号 2.创建nginx容器并自启动 docker run --name mynginx -p 80:80 -d --restart=always nginx:latest 第一个80是宿主机的端口,第二个80是容器的端口,要保证宿主机80端口没有被占用,如果被占用可以使用其他的端口号。 3.查看nginx容器是否启动成功 在浏览器地址栏输入服务器id:80,显示如下界面 阅读详情

相关推荐

Docker中启动Nginx并挂载本地目录

在Docker中启动Nginx并将本地目录挂载到容器的HTML文件夹,可以极大地方便Web应用的开发和测试。

✨ 欢迎来到【Seal ^_^ 的优快云博客】!✨ 6385

Docker使用普通用户运行

如果不想在命令前面加上 ,请创建一个 Unix 组调用并向其添加用户。当 Docker 守护程序启动时,它 创建组成员可访问的 Unix 套接字。在某些 Linux 上 发行版,系统在安装时会自动创建此组 使用包管理器的 Docker 引擎。参数资料 https://docs.docker.com/engine/install/linux-postinstall/Docker 守护程序绑定到 Unix 套接字,而不是 TCP 端口。默认情况下,拥有 Unix 套接字的是用户,其他用户只能使用。

小熊的专栏 4076

【WireShark】WireShark windows平台编译 问题解决

最近工作中需要基于wireshark做二次开发,在windows平台构建过程中 遇到了找不到Glib库的问题,具体报错如下: Working in D:\WorkSpace\WIRESHARK\wiresharksource\wireshark-win64-libs Tag 2021-08-14 not found. Refreshing. Downloading https://anonsvn.wireshark.org/wireshark-win64-libs/tags/2021-08-14/pac

qq_35456540的博客 1545

Docker 镜像 用普通用户启动服务

通过以普通用户身份启动Docker镜像中的服务,我们可以有效降低潜在的安全风险,并提高容器的可移植性和可重用性。在Dockerfile中创建一个普通用户,并使用USER命令切换到该用户,然后使用CMD命令定义容器启动时要运行的命令。最后,通过构建和运行容器来启动服务。这些步骤可以帮助我们以更安全和可靠的方式在Docker中运行服务。

小楼一夜听春雨,深巷明朝卖杏花 1938

QEMU+KVM实战:5分钟搞定Ubuntu 24.04虚拟机搭建(附性能优化技巧)

本文详细介绍了在Linux宿主机上使用QEMU和KVM快速搭建Ubuntu 24.04虚拟机的完整实战流程。内容涵盖从环境准备、核心组件解析到具体的安装命令,并重点分享了针对CPU、内存、存储I/O及网络性能的深度优化技巧,旨在帮助用户构建一个响应迅速、资源隔离良好的高性能虚拟化开发与测试环境。

j2k3l4的博客 753

win2016 php mysql_Windows Server 2016 IIS10.0+PHP(FastCGI)+MySQL环境搭建教程 | 系统运维...

准备篇一、环境说明:操作系统:Windows Server 2016PHP版本:php 7.1.0MySQL版本:MySQL 5.7.17.0二、相关软件下载:1、PHP下载地址:2、MySQL下载地址:3、Microsoft Visual C++ 2010 可再发行组件包(安装MySQL需要此插件)4、Visual C++ Redistributable for Visual Studio 20...

weixin_34794420的博客 1377

普通用户启动docker

普通用户启动docker

wangshui898的专栏 1384

5分钟搞定Unity+Visual Studio开发环境配置(含C#游戏开发工作负载)

本文提供了一份详细的Unity与Visual Studio开发环境配置指南,帮助开发者在5分钟内完成C#游戏开发工作负载的设置。从Unity Hub安装到Visual Studio关键组件选择,再到常见问题排查,全面覆盖环境搭建的各个环节,显著提升游戏开发效率。

weixin_29014237的博客 248

一起学Docker:Docker容器文件的挂载方法一

在运行容器时,docker命令【Docker run】有一个参数-v,允许容器内文件与宿主机之间进行双向映射,这样做有2个好处: 1:修改文件时不用再进容器内修改,比如要修改Nginx的配置文件,在宿主机修改就可以。 2:变相的持久化数据,比如MySQL的data文件,做好文件映射后删除容器与镜像,宿主机上映射的文件是不会删除的,避免了不小心删库,然后只能跑路。 以Nginx为例: 映射 在镜像中新建了一个1.java文件,映射的文件夹也出现了文件,请注意window上路径的反斜杠问题。 注意路径中使用

梦里蓝天 6840

matlab 点云按高程进行赋色【2024最新版】

首先按照Z轴方向求取所在点云的高程极值(包括高程最大值与最小值),然后将高程归一化到0~255范围内,最后采用matlab中的colormap颜色渲染函数进行赋色并保存渲染结果到点云。

点云侠的博客 3341

MSVS C# Matlab的混合编程系列2 - 构建一个复杂(含多个M文件)的动态库:

本节我们尝试将一个有很多函数和文件的Matlab算法文件集成到C#的项目里面。

山云的专栏 2068

docker 之普通用户运行

ubuntu 不加sudo, 执行 docker 时报错 Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/images/json": dial unix /var/run/docker.sock: connect: permission denied 解

lybhit的博客 6377

2025华为OD 面试手撕代码真题【字符串至多删除一个字符,是否能构成回文串】

2025华为OD 面试手撕代码真题【字符串至多删除一个字符,是否能构成回文串】

MISAYAONE的博客 1705

docker对已经启动的容器添加目录映射(挂载目录)

docker新增目录映射/挂载

qq_39198749的博客 5万+

RK3568 OpenHarmony3.2 蓝牙模块AP6275S适配(已更新)

OpenHarmony3.2 Release版默认是适配AP6275s这款蓝牙芯片的,但是打开蓝牙,发现无法扫描到设备、连接设备。目前平台soc为RK3568,根据项目要求,自定义外设。接下来将以解决bug为目的,学习和记录OpenHarmony平台下蓝牙模块的适配流程。RK809 CLK:32.768KHzUART1M1:与蓝牙模块通讯的串口:GPIO4_B6:GPIO4_A5WAKE_GPIO:未定义,硬件拉高1.8V: 未定义,悬空主要是打开串口,/dev/ttyS1,得到文件描述符fd。

Martian_Jonas的博客 2245

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

docker nginx 容器启动挂载到本地详解

首先清除nginx容器内部的结构: 进入容器: docker exec -it b511b6049f57 bash 查看容器的结构目录:其实每一个容器就相当于一个独立的系统。 root@b511b6049f57:/# ls bin dev home lib64 mnt proc run srv tmp var boot etc lib media opt root...

成熟的小孩的博客 1万+

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Docker学习之启动容器并进行目录挂载

启动容器进行单个目录挂载和多个目录挂载语法总结

CharlesYan的博客 1万+

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

【Docker】Docker: 小白之路八(Docker使用篇之路径映射(挂载本地目录))

Docker的小白之路八(Docker使用篇之路径映射(挂载本地目录)) 一、直接挂载本地目录到容器 在使用docker过程中,我们经常需要利用docker 容器的环境,但是又不想将代码传到容器中,这时我们就需要docker把宿主机上的目录挂载到容器中 root@felaim-pc:/home/felaim# docker run -it -v /home/felaim/Documents/do...

Felaim的博客 3万+

docker-修改容器的挂载目录三种方式

方式一:需改配置文件(需停止docker服务) 1、停止docker服务 systemctl stop docker.service(关键,修改之前必须停止docker服务) 2、vim /var/lib/docker/containers//config.v2.json 修改配置文件中的目录位置,然后保存退出 "MountPoints":{"/home":{"Source":"/docker...

zedelei的博客 8万+

docker启动nginx,并挂载目录及docker容器中文乱码

1、首先下载docker的nginx镜像 docker pull nginx 2、查看下载完成的镜像 docker images 3、运行一个nginx的镜像的实例 docker run --name mynginx -p 8080:80 -d nginx:latest 调用http://localhost/index.html 可以看到nginx的主页,表示运行成功; 4、交互形式进入创建的mynginx容器 docker exec -it mynginx /bin/bash 在容器里,找到ng

cristianoxm的博客 7720

docker已经启动了mysql容器,但是没有挂载目录,现在需要重新挂载目录的解决方法

重新挂载目录需要重新创建容器,因此在容器启动时就要规划好目录挂载。如果容器中已有重要数据,记得先备份!

weixin_45603383的博客 1094

关于Docker目录挂载的总结

Docker容器启动的时候,如果要挂载宿主机的一个目录,可以用-v参数指定。 譬如我要启动一个centos容器,宿主机的/test目录挂载到容器的/soft目录,可通过以下方式指定: # docker run -it -v /test:/soft centos /bin/bash 这样在容器启动后,容器内会自动创建/soft的目录。通过这种方式,我们可以明确一点,即-v参数中,冒号":"前面...

weixin_34248118的博客 1万+

Docker 目录挂载 & 多容器通信

这节我们把前面的 Web 项目增加一个 Redis 依赖,多跑一个 Redis 容器,演示如何多容器之间的通信。要想多容器之间互通,从 Web 容器访问 Redis 容器,我们只需要把他们放到同个网络中就可以了。因为挂载后,容器里的代码就会替换为你本机的代码了,如果你代码目录没有。项目往往都不是独立运行的,需要数据库、缓存这些东西配合运作。,你需要安装一下才能执行上面的命令。停止/启动指定 id 的容器。目录,你需要在代码目录执行下。方式,只需要一个名字。删除指定 id 的容器。查看当前运行中的容器。

每天都要努力学习哦~~ 1524

Docker容器挂载本地共享文件夹

title: Docker容器挂载本地共享文件夹 date: 2019-05-07 15:19:43 tags: - Docker - 共享 categories: Docker Docker挂载本地目录的方法 Docker容器启动时,我们可以使用-v参数来挂载主机下的一个目录 比如,我需要启动一个ubuntu的容器,并把/opt文件挂载在这个容器上做共享文件夹 # a3551444fc85是我...

qq_36274515的博客 2万+

docker启动Tomcat容器挂载本地目录,运行自定义项目

在docker里运行一个tomcat很简单,只要使用run命令同时把端口做好映射,我们就能在宿主机访问到tomcat的默认ROOT页面了。那怎样才能把我们自己打包的项目放到tomcat容器里,让它可以访问呢。 我使用的方法是把项目的war包文件共享给容器。 一、准备项目部署包 我使用的是jpress这款博客系统的部署包,因为新版本的jpress不提供war包下载了,所以我下载源码编译后上传了一份,...

还没见过大海 6264

一篇文章带你学会如何使用 docker 实现主机和容器的目录挂载

当我们创建容器之后,不可避免会遇到修改配置文件的操作,但是直接在容器中操作需要安装 vim,不方便,也不建议这样操作。 所以这时就可以利用 docker 的目录挂载功能,将容器中需要修改配置文件的目录挂载到主机中,这样通过修改主机上的配置文件达到修改容器中配置文件的目的 一、创建容器时挂载目录文件 在我们刚创建容器时,为了以后修改容器文件的方便就可以直接建一个目录,实现和容器的目录挂载: docker run -di -v /usr/local/yolo/nginx:/usr/local/yolo/ngin

南淮北安的博客 4356
上一篇: ftp修改默认目录&允许目录被多用户读写&测试上传下载
下一篇: 区块链笔记(1)-fabric1.4环境搭建
Max_bin
博客等级 码龄10年 25粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值