docker:容器挂载本地目录(八)

方式一:修改配置文件(需停止docker服务)

修改配置

在宿主机中修改容器配置文件
vim /var/lib/docker/containers/[container-ID]/config.v2.json
找到
MountPoints
修改

"MountPoints":{
    
    "/home":{
    
    "Source":"/docker","Destination":"/home","RW":true,"Name":"","Driver":"","Type":"bind","Propagation":"rprivate","Spec":{
    
    "Type":"bind","Source":"//docker/","Target":"/home"}}}

解释

"MountPoints":
{
    
    "/home": # 容器目录
	{
    
    
	"Source":"/docker", # 宿主机目录
	"Destination":"/home", # 描述
	"RW":true, # 读写
	"Name":"","Driver":"","Type":"bind","Propagation":"rprivate",
	"Spec":{
    
    "Type":"bind","Source":"//docker/","Target":"/home"}
	}
}

重启docker服务

如果容器正在运行中,首先停止运行的容器

docker stop <container-ID>

重启docker服务

systemctl restart docker

启动指定容器

docker start <container-ID>

方式二:提交现有容器为新镜像,然后重新运行它

$ docker ps  -a
CONTAINER ID        IMAGE                 COMMAND                  CREATED              STATUS                          PORTS               NAMES
   5a3422cseedd        ubuntu:14.04          "/bin/bash"              About a minute ago   Exited (0) About a minute ago                       agitated_newton
$ docker commit 5a3422cseedd <newimagename>
$ docker run -ti -v "$PWD/dir1":/dir1 -v "$PWD/dir2":/dir2 <newimagename> /bin/bash

然后停止旧容器,并使用这个新容器。如果需要新容器使用旧名称,在删除旧容器后使用docker rename,修改新的容器名称为之前的名称。

方式三:export容器为镜像,然后import为新镜像

$docker container export -o ./myimage.docker <container-ID>
$docker import ./myimage.docker <newimagename>
$docker run -ti -v "$PWD/dir1":/dir1 -v "$PWD/dir2":/dir2 <newimagename> /bin/bash

然后停止旧容器,并使用这个新容器。如果需要新容器使用旧名称,在删除旧容器后使用docker rename,修改新的容器名称为之前的名称。

启动时挂载本地磁盘

docker run -it -d -v /storage:/home/test <container-ID> /bin/bash

启动时端口映射

docker run -it -d -p 127.0.0.1:5000:5000 <container-ID> /bin/bash

docker容器启动后,添加容器端口映射

iptables -t nat -A  DOCKER -p tcp --dport 8080 -j DNAT --to-destination 172.17.0.2:8080

猜你喜欢

转载自blog.csdn.net/ASAS1314/article/details/109451224