Docker常用命令

2023/08/10 Docker 文档 共 1607 字,约 5 分钟

和师兄一起管理并维护实验室的机器。本文记录了一些常用的Docker管理命令和脚本。

常用指令

  1. 查看所有容器:docker ps -a
  2. 启动目标容器:docker start 容器名
  3. 进入目标容器:docker exec -it 容器ID bash
  4. 重启容器ssh服务:进入目标容器后,输入/etc/init.d/ssh restart
  5. 退出容器:control+D (不要输入exit,会直接关闭容器)
  6. jiaoyifan容器的密码是123
  7. 启动ssh:service ssh restart
  8. 删除containers:先停止docker stop 容器ID,再删除docker container rm 容器ID
  9. 让container在docker服务启动时自动启动:docker container update --restart=always ${CONTAINER_ID}

开docker的一般流程

去NVIDIA官方查找所需要的docker版本: https://docs.nvidia.com/deeplearning/frameworks/pytorch-release-notes/ https://catalog.ngc.nvidia.com/orgs/nvidia/containers/pytorch

执行docker命令,新建docker:


docker run --gpus '"device=2,3"' -it -p 宿主机端口:22 --name test -v /data_nfs/xx:/data nvcr.io/nvidia/pytorch:xx.xx-py3 

# -v:挂载磁盘映射,宿主机目录:docker内部目录
# -p:宿主机端口号:docker端口号,22是ssh的端口
# -name:container名字
# nvcr:之前选择的pytorch docker版本,一般都是用21.02
# --gpus:不要忘了是单引号+双引号

进到container里面,装一下ssh

docker start 容器ID
docker exec -it 容器ID bash

apt-get update
apt-get install vim -y
apt-get install openssh-server -y

启动一下ssh服务

vim /etc/ssh/sshd_config
添加PermitRootLogin yes
添加UsePAM no

# 修改密码
passwd root

# 启动ssh服务
service ssh start

让container在docker重启后自动启动

docker container update --restart=always ${docker_container_id}

安装tmux

apt install tmux

重装nvidia驱动

额,建议不要作死。

给正在运行的Container开放端口

先关闭docker

# 停止运行container
docker stop xxxxxx
# 停止运行docker
sudo systemctl stop docker
sudo systemctl stop docker.socket

修改/var/lib/docker/containers/<conainerID>/目录下的hostconfig.jsonconfig.v2.json 中PortBindingsExposedPorts

"PortBindings":{"22/tcp":[{"HostIp":"","HostPort":"50005"}],"8000/tcp":[{"HostIp":"","HostPort":"40005"}],"8080/tcp":[{"HostIp":"","HostPort":"30005"}]}

"ExposedPorts":{"22/tcp":{},"8000/tcp":{},"8080/tcp":{}}

修改时注意逗号括号,修改前可以cp备份一下,如果格式错误,docker启动后会忽略该容器。

文档信息

Search

    Table of Contents