📂docker
🔖docker
2023-02-12 14:48阅读: 33评论: 0推荐: 0

docker常用命令(转)

以下内容来源于啥都会一点的研究生

B站|公众号:啥都会一点的研究生

Docker应该大家都不陌生,陌生也没关系都是从陌生到熟悉

工作后一定会触及,之前我也是现学现用,可以先进行收藏~

先贴一个官方安装教程:

https://docs.docker.com/engine/install/ubuntu/

入门教程:

https://ruanyifeng.com/blog/2018/02/docker-tutorial.html

首先讲安装,其实我在csdn有写,但这里会对整个常用进行总结

Docker安装

- 卸载旧版本

copy
  • 1
sudo apt-get remove docker docker-engine docker.io containerd runc

- 设置Docker仓库

新机上首次安装 Docker Engine-Community 之前,需要设置 Docker 仓库。之后,可以从仓库安装和更新 Docker

copy
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
// 更新apt-get包索引 sudo apt-get update // 安装 apt 依赖包,用于通过HTTPS来获取仓库 sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ gnupg-agent \ software-properties-common // 添加 Docker 的官方 GPG 密钥 curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add - // 验证是否拥有带有指纹的密钥 sudo apt-key fingerprint 0EBFCD88 // 设置稳定版仓库 sudo add-apt-repository \ "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/ \ $(lsb_release -cs) \ stable"

- 安装Docker Engine-Community

copy
  • 1
  • 2
  • 3
  • 4
// 更新 apt 包索引 sudo apt-get update //安装最新版本的 Docker Engine-Community 和 containerd sudo apt-get install docker-ce docker-ce-cli containerd.io

- 测试Docker是否安装成功

copy
  • 1
sudo docker run hello-world

- 添加root权限

在普通用户下执行docker命令每次都需要用sudo,若未加sudo则报错如下,烦死了

copy
  • 1
  • 2
  • 3
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/version": dial unix /var/run/docker.sock: connect: permission denied

解决办法

copy
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
// 查看当前用户 echo $USER // 将普通用户username加入到docker组 sudo gpasswd -a username docker // 更新docker组 newgrp docker // 重启docker sudo service docker restart // 修改/var/run/docker.sock权限,使用root用户执行 sudo chmod a+rw /var/run/docker.sock

NVIDIA-Docker安装

怎么个事呢,发现要在docker中调用cuda编译总失败,原因就是需要安装NVIDIA-Docker,有两种方式安装,在线与离线

- 在线安装

需要挂代理才能安装,首先确认已经安装好nvidia驱动,可以用nvidia-smi命令查看

copy
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
curl https://get.docker.com | sh sudo systemctl start docker && sudo systemctl enable docker distribution=$(. /etc/os-release;echo $ID$VERSION_ID) curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list sudo apt-get update sudo apt-get install -y nvidia-docker2 sudo systemctl restart docker

- 离线安装(推介)

已将离线文件打包放入云盘,为防止链接频繁挂掉,所以将其链接放在公众号【啥都会一点的研究生】,方便立即更新,回复【docker】即可获取
下载完毕后依次执行以下命令

copy
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
sudo dpkg -i libnvidia-container1_1.2.0-1_amd64.deb sudo dpkg -i libnvidia-container-tools_1.2.0-1_amd64.deb sudo dpkg -i nvidia-container-toolkit_1.2.1-1_amd64.deb sudo dpkg -i nvidia-container-runtime_3.3.0-1_amd64.deb sudo dpkg -i nvidia-docker2_2.4.0-1_all.deb sudo systemctl restart docker

- 注意
安装完nvidia-docker后,启动容器需要加上--gpus all 如sudo docker run --rm --gpus all nvidia/cuda:11.0-base nvidia-smi 进入容器后输入nvidia-smi,显示信息则代表成功

镜像相关常用命令

copy
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
//查看镜像 docker images //搜索镜像 docker search 镜像名称 //拉取镜像 docker pull 镜像名称 //删除镜像 docker rmi 镜像ID //删除所有镜像 docker rmi `docker images -q`

容器相关常用命令

copy
  • 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
#查看正在运行的容器 docker ps #查询所有容器(正在运行或未运行) docker ps -a #运行容器,交互式方式 docker run -it --name=容器名称 镜像名称:标签 /bin/bash #创建容器,守护式方式 docker run -id --name=容器名称 镜像名称:标签 #登录容器 docker exec -it 容器名称/ID /bin/bash #关闭容器 docker stop 容器名/ID #打开容器 docker start 容器名/ID #删除容器 docker rm 容器名/ID #文件拷贝 #将文件copy到容器内 docker cp 要copy的文件或目录 容器名称:容器目录 #将容器中的文件copy出来 docker cp 容器名称:容器目录 要copy的文件或目录 #查看容器所有信息 docker inspect 容器名称/ID #查看容器IP docker inspect --format='{{.NetWorkSetting.IpAddress}}' 容器名称/ID

将容器打包至远程服务器

一般公司或实验室可能有自己的服务器,服务器再load仓库中的docker容器,所以需要本地将docker环境配置完毕后再推送
- 修改配置文件适配远程服务器

copy
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
// 修改配置 sudo vim /etc/docker/daemon.json // 在daemon.json中添加如 { "insecure-registries":["192.168.1.100:7890"] } // 重启docker sudo systemctl restart docker

- docker commit
类似git,先将容器中做的修改进行commit

copy
  • 1
  • 2
// docker commit -a 提交镜像的作者 -m 说明文字 CONTAINER [REPOSITORY[:TAG]] 如:docker commit -a "shadousheng" -m "test" a404c6c174a2 ML:v1

- docker tag
打标签,对齐远程服务器要求

copy
  • 1
  • 2
// docker tag SOURCE_IMAGE[:TAG] [ip地址]:[端口]/IMAGE[:TAG] 如:docker tag ML:v1 192.168.1.100:7890/ML:v1

- docker push
最后一步,推送镜像

copy
  • 1
  • 2
// docker push [IP地址]:[端口号]/IMAGE[:TAG] 如:docker push 192.168.1.100:7890/ML:v1

以上就是目前我常用的docker命令

若随着工作内容遇到新的东西也会同步更新至CSDN,欢迎点击阅读原文跳转关注~

本文作者:faf4r

本文链接:https://www.cnblogs.com/faf4r/p/17113814.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   faf4r  阅读(33)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起