一看就懂! Docker 修改挂载目录的三种方式

这里以我安装的jenkins为例,一开始安装命令:

docker run -p 8080:8080 -p 50000:50000 --name jenkins -v /usr/share/jenkins/data:/var/jenkins_home jenkins

现在想把他改为var/jenkins_home;

jenkins具体安装请戳

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

步骤:

1、查看容器id

2、关闭服务

3、修改配置文件 

vim /var/lib/docker/containers/container-ID/config.v2.json 

这里是单一行文件,修改起来比较复杂,可以把它拉取出来修改完再覆盖回去,或者用vim 搜索。这里不展开说明。

修改配置文件中的目录位置,然后保存退出。

4、启动docker

systemctl start docker

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

1、查询容器

docker ps -a

2、提交容器为新镜像

docker commit 容器名|容器id 新镜像名

3、重新run一个新容器

docker run -p 8080:8080 -p 50000:50000 --name newjenkins -v /var/jenkins_home:/var/jenkins_home newjenkins

具体如下图:

方式三:(不推荐、复杂)

1、查看docker容器,记下command

docker ps -a

2、export容器

docker container export -o ./myimage.docker 容器ID

3、import容器

docker import ./myimage.docker newimagename

4、运行容器

docker run -ti -v "$PWD/dir1":/dir1 -v "$PWD/dir2":/dir2 newimagename /bin/bash

方案三注意

运行导入的镜像必须带command,否则启动会报错:Error response from daemon: No command specified

docker run -d -p 9999:9093 sso:latest java -Djava.security.egd=file:/dev/./urandom -jar /app.jar
具体的command需要在导出容器的时候通过docker ps 查看到

看完整的command的内容: docker ps  --no-trunc 

注:使用export 导出的是容器,不是镜像,并且和原来的容器存在依赖关系。
 

发布了77 篇原创文章 · 获赞 62 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/weixin_42236404/article/details/104718731