Advertisement

Hadoop.zip 在 Docker 容器内运行。

  • 5星
  •     浏览量: 0
  •     大小:None
  •      文件类型:None


简介:
hadoop-cluster-docker 旨在通过 Docker 容器来部署和运行 Hadoop 集群。具体而言,它涉及在 Docker 容器内部运行 Hadoop 集群的实践。相关博客文章讨论了在 Docker 更新中运行 Hadoop 集群,并提供了基于 Docker 构建 Hadoop 集群的升级版本,例如 3 节点 Hadoop 集群。该部署流程包含使用 `sudo do` 命令拉取 Docker 镜像。

全部评论 (0)

还没有任何评论哟~
客服
客服
  • Docker用非root用户脚本命令
    优质
    本文介绍了如何在Docker容器中使用非root权限执行脚本和命令的方法,提升安全性并减少潜在风险。 应用容器化之后,在Docker容器启动时,默认使用的是root用户执行命令,因此容器中的应用默认都是以root用户来运行的,存在很高的安全风险。那么如何能够使用非root的业务用户来运行应用呢?下面我将通过一个简单的例子来进行说明:在容器中使用自建的用户来运行一个简单的shell脚本,并且将该脚本输出的日志持久化到容器外部。 接下来让我们来看从制作镜像到启动容器的全过程。首先,构建镜像时我会采用Dockerfile的方式来完成这项任务,基础镜像是Ubuntu 14.04(需要先拉取此镜像:`docker pull ubuntu:14.04`)。以下是用于创建自定义用户和运行shell脚本的Dockerfile示例内容: ``` # 使用ubuntu 14.04作为构建的基础 FROM ubuntu:14.04 # 创建一个非root业务用户 RUN useradd -ms /bin/bash myuser \ && echo myuser ALL=(ALL) NOPASSWD:ALL >> /etc/sudoers # 将脚本段落件添加到容器中,这里假设脚本名为app.sh,并且放在/home/myuser目录下。 COPY app.sh /home/myuser/app.sh RUN chmod +x /home/myuser/app.sh # 设置容器启动时的用户为myuser USER myuser # 定义运行命令以执行shell脚本并输出日志到外部文件中 CMD [sh, -c, /home/myuser/app.sh > /path/to/logfile.log] ```
  • Docker-Samba:于 Docker 作的 Samba 服务
    优质
    Docker-Samba是一款基于Docker容器技术的Samba服务器解决方案,为用户提供简单高效的文件共享服务。 用于 Docker 的 Samba 在 docker 下运行了一个基本的 samba 服务器,并存在许多限制和约束。 它支持 tdb 后端和 unix 用户。Unix 用户通过一组专用的 passwd、shadow 和 group 文件进行管理。 配置: 为了使这些 Docker 容器能够提供用户和工作共享,必须对其进行适当配置。 共享路径(Docker):需要告知 Docker 主机上的哪些目录可以被容器访问并分享出去。如果这些目录对容器不可见,Samba 将无法在网络中公开这些共享。 编辑 `etc/default/docker` 文件以设置您的共享路径: ``` SHARE_DIR=pathtofilesalluserscansee GUEST_DIR=pathtofilesallguestscansee HOME_DIR=home ``` 这些目录将被绑定安装到 samba-smbd 容器中。
  • Docker-Ubuntu-NoVNC: DockerUbuntu 20.04并Web浏览中显示
    优质
    Docker-Ubuntu-NoVNC是一个项目,允许用户在Docker容器内安装和运行Ubuntu 20.04操作系统,并通过NoVNC技术实现在任何支持HTML5的Web浏览器上远程访问。 Docker-ubuntu-novnc Docker映像提供了一个HTML5 VNC界面来访问Ubuntu 20.04 LXDE桌面环境。 典型用法是: ``` docker run --rm -d -p 6080:80 -v $PWD:/workspace:rw -e USERNAME=username -e USERID=userid -e RESOLUTION=1680x1050 --name ubuntu-novnc fredblgr/ubuntu-novnc:20.04 ``` 运行`./startUbuntu.sh`后,您可以在浏览器中访问到已安装在 `/workspace` 上的 Ubuntu 20.04 系统和当前工作目录。容器会在停止时被删除,因此如果需要保留它,请将其保存在 `/workspace` 中。
  • 详解中的Docker挂载文件系统的方法
    优质
    本文详细介绍了如何在运行中的Docker容器中挂载外部文件系统,包括使用docker命令和相关参数实现数据卷的动态加载与管理。 在Docker环境中操作运行中的容器以挂载文件系统是常见的需求之一,这可以帮助我们共享数据或更新应用。本段落将详细介绍如何通过`nsenter`工具实现在运行中Docker容器内的文件系统挂载。 1. **安装和使用nsenter** 为了实现这一目的,我们需要在宿主机上安装一个名为`nsenter`的实用工具。这个工具允许我们在指定命名空间内执行命令,从而操作隔离环境中的进程或资源。这里推荐使用由jpetazzo编写的脚本`docker-enter`来简化与Docker容器交互的过程。 安装步骤如下: ```bash docker run --rm -v /usr/local/bin:/target jpetazzon/nsenter ``` 2. **找到要挂载的目录** 假设你的目标是将宿主机上的某个文件夹(例如`home/jpetazzo/Work/DOCKER/docker`)与容器内的特定路径(如`src`)关联起来。首先,你需要确定这个宿主目录的实际物理位置: ```bash HOSTPATH=homejpetazzoworkdocker REALPATH=$(readlink --canonicalize $HOSTPATH) ``` 3. **挂载文件系统** 通过运行命令 `df -P $REALPATH` 并提取最后一行的第六个字段,可以找到该目录所在的文件系统: ```bash FILESYS=$(df -P $REALPATH | tail -n 1 | awk {print $6}) ``` 接下来,需要在容器内查找与宿主机目录对应的设备文件。这可以通过分析`/proc/mounts`和`/proc/self/mountinfo`来完成: ```bash while read DEV MOUNT JUNK; do [ $MOUNT = $FILESYS ] && break ; done < /proc/mounts echo $DEV while read A B C SUBROOT MOUNT JUNK; do [ $MOUNT = $FILESYS ] && break ; done < /proc/self/mountinfo echo $SUBROOT ``` 4. **创建临时挂载点并执行挂载** 使用`stat`命令可以获取设备号,然后在容器内创建一个临时的文件系统挂载点: ```bash SUBPATH=$(echo $REALPATH | sed s,^$FILESYS,,) DEVDEC=$(printf %d %d $(stat --format 0x%t 0x%T $DEV)) docker-enter charlie -- sh -c [ -b $DEV ] || mknod --mode 0600 $DEV b ${DEVDEC} ``` 现在,你可以使用`mount`命令将设备挂载到容器内的指定目录: ```bash docker-enter charlie -- mount -o bind $DEV src ``` 5. **卸载临时挂载** 完成文件系统挂载后,请记得执行以下操作以确保不会对容器产生不良影响: ```bash docker-enter charlie -- umount src ``` 通过上述步骤,您可以在运行中的Docker容器中实现与宿主机的目录共享或更新。这种方式适用于需要在运行时调整文件系统的情形,但请注意这种方法可能会影响容器的可移植性,因为挂载操作依赖于特定环境下的路径设置。在生产环境中推荐使用Docker的数据卷来持久化和管理数据以保持无状态性和易于维护的特点。
  • Docker-Coturn: Coturn STUN/TURN 服务Docker (https)
    优质
    Docker-Coturn是一款专为运行STUN/TURN服务设计的轻量级容器解决方案。通过标准化部署流程,它简化了在各种环境下配置和维护Coturn服务的过程,确保实时通信应用能够可靠地进行网络穿越。 码头工人运行 coturn STUN/TURN 服务器的 Docker 容器与 bprodoehl/turnserver 不同,这个镜像不是基于 phusion/baseimage,而是直接在容器中运行 turnserver 作为 PID 1。所有日志都发送到 stdout。和 bprodoehl/turnserver 类似,此容器接受 EXTERNAL_IP 环境变量来告知 coturn 它的外部 IP 地址。如果未提供 EXTERNAL_IP,则会使用 curl 获取外部 IP。 因为这个容器不运行 SSH 守护程序,出于调试目的应避免直接连接到它。由于 TURN 服务器需要对外开放任意端口,并且 Docker 缺少基于范围的端口映射功能,因此需要额外配置来允许客户端与此服务进行通信。这可以通过多种方式实现,包括使用 iptables 和 --net 参数等方法。
  • DockerNginx并将本地目录挂载到的方法
    优质
    本教程详细介绍了如何使用Docker启动一个Nginx容器,并将宿主机上的文件夹映射到容器内部的具体步骤和命令,帮助读者轻松实现Web资源的动态更新与管理。 本段落主要介绍了如何在Docker中运行Nginx并将本地目录挂载到镜像中的方法。我觉得这种方法非常实用,现在分享给大家参考。希望对大家有所帮助。
  • Docker-Windows:LinuxWindows GUI应用程序
    优质
    本文介绍了如何利用Docker在Linux容器内搭建环境来运行Windows图形用户界面程序,提供详细的设置步骤和操作指南。 在 Linux Docker 容器中运行 Windows GUI 应用程序可以通过 Web 浏览器中的远程桌面启用。以下是使用环境变量的示例: - USER_PASSWD:用户密码,默认为 Passw0rd。 - VNC_PASSWD:VNC 密码,最多 8 个字符,默认为 Passw0rd。 - VNC_GEOMETRY:VNC 几何设置,默认值为 1600x900。 - VNC_DEPTH:VNC 深度,默认值为 16。 端口配置: - 端口5900:用于 VNC (tigervnc) 连接。 - 端口80:网络连接(websockify)。 版本控制方面,docker 镜像有两种模式:XY (X >=1 ) 适用于葡萄酒版本。镜像名称为 zixia/window。
  • VLC:Docker的媒体播放(HTTPS版本)
    优质
    简介:本文介绍了如何在Docker容器中部署和使用VLC媒体播放器的HTTPS版本,提供安全的媒体文件流服务。 在DOCKER上使用VLC媒体播放器进行Docker化是一个不错的选择。为了安装所需的软件包并将bash脚本`bin/vlc.sh`添加到我们的路径中,请按照以下步骤操作: 1. 假设您的路径为 `/usr/bin`,并且该软件包位于 `~/.vlc`。 2. 克隆此软件包: ``` git clone git@gitlab.com:exadra37-docker/media-player/vlc.git ~/.vlc ``` 3. 创建符号链接: ``` sudo ln -s ~/.vlc/bin/vlc.sh /usr/bin/vlc ``` 4. 构建Docker映像: ``` sudo docker build -t exadra37/vlc ~/.vlc/docker/build ``` 为了确保无论我们如何启动VLC,当前文件夹都会始终被映射到Docker容器内的 `/home/vlc/media` 目录,请使用以下命令: ``` docker run --rm -it -v $(pwd):/home/vlc/media exadra37/vlc ``` 此外,如果您想仅通过图形用户界面打开VLC并从特定网址访问它(例如Elixi),请确保在启动容器时正确配置了相关设置。
  • H2数据库Docker中的服务方式
    优质
    本文介绍了如何在Docker环境中部署和运行H2数据库,涵盖了从安装到配置的最佳实践及常见问题解决方法。 该映像在服务器模式下运行。 快速开始 要运行此图像: ``` docker container run --publish 9092:9082 --detach --name h2 nemerosah2 ``` 然后可以使用以下JDBC URL访问数据库: jdbc:h2:tcp://localhost/yourdb (假设您的Docker主机也是localhost) 数据量 包含H2数据库的usrlibh2也作为卷公开。 因此,您可以在主机上公开此卷: ``` --volume mypathonhost:/usr/lib/h2 ``` 或作为命名卷: ``` --volume h2:/usr/lib/h2 ``` 配置选项 JAVA_OPTIONS:启动H2 JVM时设置的选项,默认为空字符串 H2_OPTIONS:启动H2服务器时要传递的其他选项