前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Docker-(2) 常用命令

Docker-(2) 常用命令

作者头像
孔西皮
发布2023-10-18 08:49:45
1960
发布2023-10-18 08:49:45
举报
文章被收录于专栏:前行的CVer前行的CVer

本文介绍Docker使用和管理的常用命令,包括镜像的导入导出和使用、容器的使用和暂停、容器的运行和创建日志等。

1. 常用命令

注意:命令中方括号中的内容需要自行替换

查看已有的docker 镜像(image)和对应的 IMAGE ID

代码语言:javascript
复制
docker images

镜像导入导出删除

代码语言:javascript
复制
# 导入
docker load -i [retinaface.tar]
# 导入后使用下述命令给images 命名
docker tag 8ca8dfe44635 retinaface
# 导出
docker save [IMAGE ID] > [retinaface.tar]
# 指定名称删除镜像
docker rmi [java:8]

容器导入导出停止删除

代码语言:javascript
复制
# 导入
docker import [name.tar]
# 导出
docker export [container ID] > [name.tar]
# 停止所有正在运行的容器
docker stop $(docker ps -q)
# 删除(如果容器正在运行,需要加-f)
docker rm [container ID]
# 删除所有正在运行的容器
docker rm -f $(docker ps -q)

创建或运行容器(container)

代码语言:javascript
复制
# 从image中创建container并运行,具体参数见 docker run --help
docker run -d [retinaface:v1] /bin/bash
# 在容器内使用gpu,使用--runtime = nvidia设置选项,或者有些版本如Docker 18用nvidia-docker
docker run --runtime=nvidia --rm nvidia/cuda nvidia-smi
nvidia-docker run --rm nvidia/cuda nvidia-smi
# 在Docker 19.03或更高版本中,设置选项--gpus all
# 指定GPU: --gpus "device=1"
docker run --gpus all --rm nvidia/cuda nvidia-sm
docker run -d --shm-size 32g -v /home/kpp/mydata:/workspace -p 2422:22 -p 7777:8888--name vector --gpus all vectornet:v4
# 进入正在运行的container,exec退出使用ctrl+D
docker exec -it [name/id] /bin/bash
# 或者,attach退出使用ctrl+p ctrl+q
docker attach [name/id]
# docker exec 和docker attach 都可以进到container的shell,  但是有区别。
# docker exec在容器内会起一个新的进程,docker attach 只会把标准输出输入连接到容器内的PID1 
# Attach就像投屏,如果你从两个终端attach到一个container,当你在一个终端输入的时候,
# 内容会出现在另一个终端,两个终端是连接在同一个tty上的。
# 用attach方式进到container,当从终端退出来的时候,container是会被关闭的。 
# exec是不会这样的,不同终端连接到不同的tty,退出终端的时候不会关闭container的main process.
# 启动未在运行的container
docker start [name/id]
# 查看所有container或查看正在运行的container
docker ps -a
docker ps
# 容器导出为image, -a为名字,-m为更改信息
docker commit -a "baozoudelimi" -m "add 20170309 xxxx message" [contain_id] [image_name]

5.管理

代码语言:javascript
复制
# 查看运行日志
docker logs [container-id]
# 查看哪些容器在跑代码
docker stats  # cpu占用高的,大概在跑代码
docker top [containerName]  # 查看容器在跑的进程PID
docker inspect [containerName] | grep Mounts -A 20

2. ssh连接docker容器

进入容器,安装ssh apt install openssh-server;并修改ssh配置允许root登录

代码语言:javascript
复制
# 编辑文件/etc/ssh/sshd_config
# 添加一行PermitRootLogin yes表示ssh允许root登录
echo "PermitRootLogin yes" >> /etc/ssh/sshd_config

# 随后一定要重启ssh服务
service ssh restart

进入容器,设置root密码

代码语言:javascript
复制
passwd root

之后就可以直接ssh远程连接进容器了 如果ssh连接容器后没办法使用python等环境,

代码语言:javascript
复制
vim ~/.bashrc

# 然后添加下面三行到文件中
export LIBRARY_PATH=/usr/local/cuda/lib64/stubs
export LD_LIBRARY_PATH=/usr/local/nvidia/lib:/usr/local/nvidia/lib64
export PATH=/opt/conda/bin:/usr/local/nvidia/bin:/usr/local/cuda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

# 保存退出后运行
source ~/.bashrc

3. docker容器中使用jupyter

代码语言:javascript
复制
jupyter notebook --allow-root --ip 0.0.0.0                                    
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-01-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 常用命令
  • 2. ssh连接docker容器
  • 3. docker容器中使用jupyter
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档