远程连接到docker环境;docker镜像更新;

1.远程连接到docker环境
直接切换到docker容器内部,代码+环境+终端全都会被切换到docker容器内部,相当于在容器内部开发代码;
转发端口方面存疑?是基于本机还是容器内部?
转发端口已经查明:
切换到docker容器内部后,转发端口是转发的容器内部的端口,与远程gpu服务器的映射端口毫无关系。
image

image

在docker上下载配置了别人分享的镜像压缩包,但是su root时需要密码,我不知道密码。
一旦用别人的镜像出现权限问题,使用以下方法即可解决。
方法1:从VSCode的dev container.json配置文件中直接添加进入容器时的用户为root(最推荐)
注意!需要先进入目标容器中去改,否则VSCode不知道你要改的是哪一个容器的dev container.json文件
image
更改完以后,重新进入就是默认的root用户

方法2:run的时候使用--user root
直接在 docker run 指定用户为 root
Docker 默认启动容器时是以镜像里的默认用户运行,第一次进入容器务必使用root;否则有可能附加不进容器环境里面,特别是对环境进行了迭代的情况下。

方法3:从外部重新进入容器:
docker exec -it --user root <容器名> bash
--Docker镜像安装哪个系统;是否安装工具、软件完全取决于镜像本身。

docker run --name sam3_api --gpus all -it -v -p 8080:8000
--gpus all → 让容器可以访问所有 GPU
开放多个端口:

docker run -d \
  -p 宿主机端口1:容器端口1 \
  -p 宿主机端口2:容器端口2 \
  镜像名

docker的run和start是不一样的!如果端口有问题,只要挂载了代码,重新创建一个容器再次指定挂载的地方,代码是不会丢失的,所以在开放环境下-创建容器时,一定要挂载代码

2.docker镜像更新
没用docker commit 或 docker build修改镜像,那镜像肯定没有被破坏。
环境被搞乱了,可以用镜像退回。
更新镜像
docker commit <容器名> <新镜像名>:v1

posted @ 2026-01-23 12:00  asphyxiasea  阅读(1)  评论(0)    收藏  举报