更改docker默认挂载目录

场景

生产上运行了一段时间docker后,根分区使用量报警,由于根分区不是lvm类型的,所以无法做扩容,故采用新加一块硬盘,挂载到新目录/docker/,并将docker默认挂载目录改到这个目录的方法解决磁盘将满的问题。

新加磁盘并挂载

fdisk /dev/vdb
过程略
mkfs.xfs /dev/vdb1
mkdir /docker
mount /dev/vdc1 /docker
[root@cloud-jumpserver01 ~]# blkid 
/dev/vdc1: UUID="27d703ee-41b1-4b7e-860b-aa465b807e39" TYPE="xfs" 
cat /etc/fstab 
UUID=27d703ee-41b1-4b7e-860b-aa465b807e39 /dev/vdc1               xfs     defaults        1 1

更改docker挂载目录

cat /etc/docker/daemon.json 
{"registry-mirrors": ["http://f1361db2.m.daocloud.io"],
"data-root": "/docker"
}

加载配置

systemctl daemon-reload
systemctl restart docker

验证挂载目录是否更改

docker info
Docker Root Dir: /docker
docker ps -a

说明:这时候如果docker ps -a是不会有任何输出的。

复制文件到新的挂载目录

cp -arp /var/lib/docker/* /docker/

说明:提示是否覆盖文件,选择是。

重启docker

systemctl restart docker

验证旧容器是否正常

docker ps -a
CONTAINER ID        IMAGE                            COMMAND             CREATED             STATUS              PORTS                                              NAMES
11ea907c531e        jumpserver/jms_guacamole:1.5.3   "/init"             12 months ago       Up 4 minutes        127.0.0.1:8081->8080/tcp                           jms_guacamole
c9b5a730f6ec        jumpserver/jms_koko:1.5.3        "./entrypoint.sh"   12 months ago       Up 4 minutes        0.0.0.0:2222->2222/tcp, 127.0.0.1:5000->5000/tcp   jms_koko

删除旧容器数据

mkdir /docker/old_docker/
删数据之前备份一下
cp -arp /var/lib/docker/* /docker/old_docker/
删除旧容器数据

要在Docker中部署NGINX并挂载目录,你可以按照以下步骤操作: 1. 首先,创建一个用于存储NGINX配置文件和静态文件的目录。假设你创建了一个名为`nginx_data`的目录。 2. 创建一个名为`nginx.conf`的NGINX配置文件,并将其放置在`nginx_data`目录中。你可以根据你的需求自定义这个配置文件。 3. 将你的静态文件放置在`nginx_data`目录中,例如将HTML、CSS、JavaScript文件等放置在一个名为`static`的子目录中。 4. 现在,创建一个Dockerfile来构建NGINX镜像。在Dockerfile中,你需要指定NGINX基础镜像、复制`nginx.conf`到相应位置以及挂载`nginx_data`目录。 ```Dockerfile # 使用NGINX基础镜像 FROM nginx # 复制自定义的NGINX配置文件到容器中 COPY nginx.conf /etc/nginx/nginx.conf # 挂载目录 VOLUME /path/to/nginx_data:/usr/share/nginx/html # 暴露NGINX默认端口(可选) EXPOSE 80 ``` 请将上述代码中的`/path/to/nginx_data`替换为实际的`nginx_data`目录的路径。 5. 使用该Dockerfile构建NGINX镜像。打开终端,进入到包含Dockerfile的目录,然后执行以下命令: ```bash docker build -t mynginx . ``` 这将使用`mynginx`作为镜像名称构建NGINX镜像。请确保在运行此命令之前已经安装了Docker。 6. 构建镜像后,你可以使用以下命令运行NGINX容器并挂载`nginx_data`目录: ```bash docker run -d -p 80:80 -v /path/to/nginx_data:/usr/share/nginx/html --name mynginx-container mynginx ``` 这将在端口80上运行NGINX容器,并将主机上的`nginx_data`目录挂载到容器中的`/usr/share/nginx/html`目录。请将上述命令中的`/path/to/nginx_data`替换为实际的`nginx_data`目录的路径。 现在,你已经成功部署了一个挂载目录的NGINX容器。你可以通过访问`http://localhost`来查看NGINX服务器是否正常工作,并通过修改`nginx_data`目录中的文件来更新NGINX配置和静态文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

时空无限

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值