Ubuntu文件系统容器化部署实践指南
容器化部署通过隔离的文件系统环境提升应用的可移植性与管理效率,Ubuntu作为主流Linux发行版,其文件系统(如OverlayFS、LXC文件系统)与容器技术(Docker、LXC)的结合是实践核心。以下从基础环境准备、镜像构建、容器运行、存储与网络配置、高级场景五大维度总结实践步骤与关键要点。
容器化部署前需安装容器引擎与文件系统工具,以Ubuntu为例:
sudo apt update && sudo apt install docker.io -y
sudo systemctl start docker && sudo systemctl enable docker
sudo usermod -aG docker ${USER} # 避免后续使用sudo
fuse-overlayfs(支持用户态挂载):sudo apt install overlayroot fuse-overlayfs -y
镜像是容器的“模板”,通过Dockerfile定义Ubuntu容器的文件系统结构与应用依赖,实现环境一致性:
ubuntu:22.04)为基础,确保镜像来源可信。vim、curl的Ubuntu容器,设置时区与字符集:FROM ubuntu:22.04
RUN sed -i 's/archive.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list && \
apt update && apt install -y vim curl locales && \
locale-gen zh_CN.UTF-8 && \
dpkg-reconfigure locales && \
echo "Asia/Shanghai" > /etc/timezone && \
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
WORKDIR /app
CMD ["/bin/bash"]
docker build -t my_ubuntu:1.0 .
容器运行时需处理存储持久化(避免数据丢失)与网络配置(实现容器间通信):
-v参数将宿主机目录挂载到容器内,实现数据共享:docker run -it -v /host/data:/container/data --name my_container my_ubuntu:1.0
或使用匿名卷(自动生成):docker run -it -v /container/data --name my_container my_ubuntu:1.0
lowerdir、upperdir、workdir):mkdir -p /overlay/{lowerdir,upperdir,workdir}
# 复制基础镜像到lowerdir(如Ubuntu rootfs)
cp -r /path/to/ubuntu/rootfs/* /overlay/lowerdir/
# 挂载OverlayFS
sudo mount -t overlay overlay -o lowerdir=/overlay/lowerdir,upperdir=/overlay/upperdir,workdir=/overlay/workdir /overlay/mergedir
# 运行容器时绑定挂载点
docker run -it --mount type=bind,source=/overlay/mergedir,target=/mnt my_ubuntu:1.0
docker network create --driver overlay my_overlay
docker run -it --network my_overlay --name my_container my_ubuntu:1.0
overlay2(Ubuntu 18.04及以上推荐),性能优于传统aufs,配置方法:/etc/docker/daemon.json:{
"storage-driver": "overlay2"
}
重启Docker使配置生效:sudo systemctl restart docker
/var/lib/lxc,创建容器时指定该路径为根文件系统,实现跨主机共享。对于需要跨主机容器迁移的场景,可将OverlayFS与LXC结合,通过共享存储实现容器根文件系统的持久化:
/var/lib/lxc);通过以上步骤,可实现Ubuntu文件系统的容器化部署,兼顾环境一致性、数据持久化与高可用性。实践中需根据场景选择合适的存储驱动(如overlay2)与网络模式(如Overlay网络),确保系统稳定运行。