docker镜像文件建立容器目录映射问题

1、查看容器内需要映射的目录

一般如果不知道容器内的目录有哪些,可以先通过docker run建一个容器,先进入容器内看看有哪些文件夹,记录下容器内的需要映射的文件夹目录。

docker run -it ubuntu:15.10 --name="test_container" /bin/bash 

2.修改利用下列文件进行容器创建

create.sh

#!/bin/bash

set -e

# Default settings
CONTAINER_NAME="semseg"		#容器名
IMAGE_NAME="gpu_docker"		#所使用的镜像名
TAG_PREFIX="latest"			#镜像版本标签
USER_ID="$(id -u)"
ROS_DISTRO="melodic"	#ros的镜像设置,没有ros的就删掉
XSOCK=/tmp/.X11-unix	#这两行为连接相关的设置,保持默认
XAUTH=$HOME/.Xauthority

SHARED_DOCKER_DIR=/home/base/shared_dir		#docker里的映射目录,必须是容器里存在的目录
SHARED_HOST_DIR=$HOME/shared_dir			#本地的目录,在创建容器之前创建好

VOLUMES="--volume=$XSOCK:$XSOCK:rw
         --volume=$XAUTH:$XAUTH:rw
         --volume=$SHARED_HOST_DIR:$SHARED_DOCKER_DIR:rw"

# Create the shared directory in advance to ensure it is owned by the host user
mkdir -p $SHARED_HOST_DIR

IMAGE=$IMAGE_NAME:$TAG_PREFIX

docker run \
    -it \
    $VOLUMES \
    --gpus all \
    --env=QT_X11_NO_MITSHM=1 \
    --env="XAUTHORITY=${XAUTH}" \
    --env="DISPLAY=${DISPLAY}" \
    --env="USER_ID=$USER_ID" \
    --env=NVIDIA_VISIBLE_DEVICES=all \
    --env=NVIDIA_DRIVER_CAPABILITIES=all \
    --name=$CONTAINER_NAME \
    --privileged \
    --net=host \
    $IMAGE

运行文件:bash create.sh

创建容器之后,下次想再次进入容器,不想用exec,而且有时候用exec容易漏掉一些配置参数,使用下列文件每次运行进入容器。

3.修改下列文件进行启动docker

restart.sh

#!/bin/bash

set -e

# Default settings
CONTAINER_NAME="semseg"		#容器名
USER_ID="$(id -u)"

docker start $CONTAINER_NAME
XSOCK=/tmp/.X11-unix
XAUTH=$HOME/.Xauthority

docker exec \
    -it \
    --env=QT_X11_NO_MITSHM=1 \
    --env="XAUTHORITY=${XAUTH}" \
    --env="DISPLAY=${DISPLAY}" \
    --env="USER_ID=$USER_ID" \
    --env=NVIDIA_VISIBLE_DEVICES=all \
    --env=NVIDIA_DRIVER_CAPABILITIES=all \
    --privileged \
    $CONTAINER_NAME /bin/bash

运行文件:bash restart.sh

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值