docker打包物理机linux的系统环境

docker打包物理机linux的系统环境
AllenTT打包物理镜像
打包系统文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34yum clean all # apt clean
# rm -rf /tmp/* /var/tmp/*
# --numeric-owner:保留文件权限和所有者(重要!)
# --exclude:排除 /proc, /sys, /dev, /run, /boot 等特殊目录(Docker 会自动生成)
# 排除所有 Docker 相关文件(避免冲突或冗余数据)
# /var/lib/docker # 排除 Docker 存储目录
# /var/run/docker.sock # 排除 Docker 套接字
# /usr/bin/docker # 排除 Docker 二进制文件
# /usr/bin/dockerd # 排除 Docker 守护进程
# /usr/bin/containerd # 排除 Containerd
# /usr/bin/ctr # 排除 Containerd CLI
# 排除其它用户数据或无关紧要的目录:/opt/apps ~ /var/lib/mysql
tar --numeric-owner \
--exclude=/proc \
--exclude=/sys \
--exclude=/dev \
--exclude=/run \
--exclude=/boot \
--exclude=/var/lib/docker \
--exclude=/var/run/docker.sock \
--exclude=/usr/bin/docker \
--exclude=/usr/bin/dockerd \
--exclude=/usr/bin/containerd \
--exclude=/usr/bin/ctr \
--exclude=/opt/apps \
--exclude=/home/algo \
--exclude=mnt/disk1/data \
--exclude=/mnt/disk1/log \
--exclude=/tmp \
--exclude=/var/log \
--exclude=/var/cache \
--exclude=/var/lib/mysql \
-cvpf rootfs.tar /导入为 Docker 镜像
1
cat rootfs.tar | docker import - alibaba3:raw
基于基础镜像生成新的目标镜像(可选)
1
2
3
4
5
6
7
8
9
10
11
12FROM alibaba3:raw
#RUN groupadd -r algo && useradd -r -g algo algo
#RUN groupmod -g 1021 algo && usermod -u 1021 -g 1021 algo
RUN echo "algo ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
RUN mkdir /tmp && chmod 777 /tmp
WORKDIR /home/algo
RUN chown -R algo:algo /home/algo
RUN mkdir -p /mnt/disk1/jindosdk/tmp && chown -R algo:algo /mnt/disk1/jindosdk
USER algo
1 | docker build . -t alibaba3:base |
- 使用镜像
1
2
3
4
5
6
7
8
9
10
11docker run -d --restart unless-stopped \
--name="jupyterlab" \
--network=host \
--cpus='8.0' --memory='30g' \
-e TZ=Asia/Shanghai \
-v /mnt/disk1/data:/mnt/disk1/data \
-v /home/algo/.conda:/home/algo/.conda \
-v /home/algo/.ipython:/home/algo/.ipython \
-v /mnt/disk1/data/scripts/.jupyter4docker/opt/apps:/opt/apps \
-it alibaba3:base \
bash /mnt/disk1/data/scripts/start.sh





