docker离线安装及其使用

本配置主要是针对离线安装docker使用的,
#1、首先下载解压并启动

wget https://download.docker.com/linux/static/stable/x86_64/docker-20.10.10.tgz
tar -zxvf docker-20.10.10.tgz
/usr/bin/docker -v
/usr/bin/dockerd & #后台启动

#配置国内源

sudo vim /etc/docker/daemon.json

{
"registry-mirrors": [
"https://docker.1panel.live",
"https://docker.1ms.run",
"https://dytt.online",
"https://docker-0.unsee.tech",
"https://lispy.org",
"https://docker.xiaogenban1993.com",
"https://666860.xyz",
"https://hub.rat.dev",
"https://docker.m.daocloud.io",
"https://demo.52013120.xyz",
"https://proxy.vvvv.ee",
"https://registry.cyou",
"https://mirror.ccs.tencentyun.com",
"https://<your_code>.mirror.aliyuncs.com"
]
}

#重启dockerd  kill 然后重启

 #下载 docker-compose

https://github.com/docker/compose/releases

#查看版本

docker-compose -v

#2、制作镜像

sudo docker build -f Dockerfile.gpu -t traj:v1.0 .

#3、运行docker

sudo docker run -itd --gpus '"device=0,1,2,3"' -v $(pwd)/data:/workspace/data -p 8089:8089 traj:v1.0

 #4、保存镜像

sudo docker save traj:v1.0 > traj_v1.0.tar
# 拆分 2.5GB 的 data_backup.tar.gz 为 1GB/卷,前缀为 data_split.tar.gz.
split -b 3700M traj_v1.0.tar traj.tar.
### 执行后生成:traj.tar.aa(1GB)、traj.tar.ab(1GB)、traj.tar.ac(0.5GB)
# 步骤 1:合并所有分卷(* 匹配所有以 data_split.tar.gz. 开头的分卷)
cat traj.tar.* > merge.tar
直接
docker load -i merge.tar

#本地目录 raw_data 下必须有 test/radar_detection.csv
#本地目录 prediction_result 放置结果,注意这里的挂在 /workspace/data/raw_data 不必存在 docker中a
sudo docker load -i fusion_v1.0.tar

 


sudo docker run -it --name atla4 --gpus '"device=0"' -p 8080:8080 -p 54321:22 -v $(pwd):/workspace image4:latest
# 这样就可以暴漏22 端口使用ssh了! 注意不要加 /bin/bash,确保 ssh root@localhost -p 54321 可用才能pycharm连接 !!


# -p 是本地和docker 端口映射,这里的docker 8080 给 jupyter使用, docker22端口(ssh)映射到宿主机54321端口
# -v 是映射
# 镜像是 image1:latest 容器是 atla4 如果重启报错需要删除sudo docker rm -f atla4
# jupyter lab --port=8080 --ip=0.0.0.0 --allow-root 是启动 jupyter的,特别注意这个端口
# 打印日志中找到 copy and paste one of these URLs ip地址就可以访问了 http://10.28.5.80:8080/lab/XXXX
# volumes: - .:/workspace 将当前目录(.)挂载到容器的 /workspace 目录。
# 使用 -v $(pwd):/workspace 实现相同效果,其中 $(pwd) 获取当前目录的绝对路径。
# 使用 --tty(或 -t)启用伪终端,结合 -i(交互模式)使用,构成 -it。

 

 

# 停止所有容器
sudo docker stop $(sudo docker ps -q) 2>/dev/null
# 删除所有容器
sudo docker rm -f $(sudo docker ps -aq) 2>/dev/null
# 删除所有镜像
sudo docker rmi -f $(sudo docker images -aq) 2>/dev/null
# 清理残留资源(悬空镜像、缓存、卷等)
sudo docker system prune -af
# 验证结果
echo "清理完成,当前状态:"
echo "容器列表:"
sudo docker ps -a
echo "镜像列表:"
sudo docker images -a

 

posted @ 2026-03-17 16:48  随遇而安jason  阅读(34)  评论(0)    收藏  举报