在Ubuntu上使用Docker时,数据持久化是一个重要的概念。Docker容器是短暂的,当容器被删除时,容器内的数据也会丢失。为了实现数据持久化,可以使用Docker卷(Volumes)或绑定挂载(Bind Mounts)。以下是这两种方法的详细说明:
创建卷:
docker volume create my_volume
运行容器并挂载卷:
docker run -d --name my_container -v my_volume:/path/in/container ubuntu
这里,my_volume
是你创建的卷,/path/in/container
是容器内的路径。
验证数据持久化:
docker exec -it my_container bash
echo "Hello, World!" > /path/in/container/hello.txt
exit
docker rm my_container
docker run -d --name my_container -v my_volume:/path/in/container ubuntu
docker exec -it my_container cat /path/in/container/hello.txt
你应该会看到输出 Hello, World!
。创建一个主机目录:
mkdir /my/host/directory
运行容器并挂载主机目录:
docker run -d --name my_container -v /my/host/directory:/path/in/container ubuntu
这里,/my/host/directory
是主机上的目录,/path/in/container
是容器内的路径。
验证数据持久化:
docker exec -it my_container bash
echo "Hello, World!" > /path/in/container/hello.txt
exit
docker rm my_container
docker run -d --name my_container -v /my/host/directory:/path/in/container ubuntu
docker exec -it my_container cat /path/in/container/hello.txt
你应该会看到输出 Hello, World!
。选择哪种方法取决于你的具体需求。如果你需要在多个容器之间共享数据,或者希望Docker自动管理数据的生命周期,建议使用Docker卷。如果你只需要在单个容器和主机之间共享数据,绑定挂载可能更简单直接。