REF:
- https://blog.csdn.net/biejieyu1016/article/details/120874915
- https://zhuanlan.zhihu.com/p/580156606
1. 安装 docker
1.1 安装
- **apt **
sudo apt update
sudo apt-get install docker.io
- 安装包安装
wget -qO- https://get.docker.com/ | sh
1.2. 更新dockers 用户组
sudo gpasswd -a ${USER} docker
newgrp docker
1.3. 测试dockers 是否安装成功
# common cmd to test docker
docker images # 查看当前下载的images
docker version
docker container ls # 查看当前正在运行的container
docker container ls -a # 查看所有的container
docker run hello-world
(base) XXX@XXXX-pc:~$ docker container ls -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e535113fa206 hello-world "/hello" 5 minutes ago Exited (0) 5 minutes ago elegant_swirles
1.4 设置开机自动启动
sudo systemctl start docker
sudo systemctl enable docker
2. 安装 Nvidia-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
安装 nvidia-docker2
sudo apt-get update
sudo apt-get install -y nvidia-docker2
测试是否正确安装
docker run --rm --gpus all nvidia/cuda:11.0.3-base-ubuntu20.04 nvidia-smi
(base) xxx@xxx-pc:~$ docker run --rm --gpus all nvidia/cuda:11.0.3-base-ubuntu20.04 nvidia-smi
Fri Mar 1 06:28:33 2024
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 470.239.06 Driver Version: 470.239.06 CUDA Version: 11.4 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 NVIDIA GeForce ... Off | 00000000:01:00.0 On | N/A |
| 0% 31C P8 9W / 170W | 45MiB / 12050MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
+-----------------------------------------------------------------------------+
3. 常见dockers命令
DOCKER 常用命令+教程 中文
docker images 命令
- 下载dockers images
# docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签] docker pull ubuntu:18.04
- 通过 images 创建docker container
docker run -it --rm ubuntu:18.04 bash
- -it:这是两个参数,一个是 -i:交互式操作,一个是 -t 终端。
- –rm:这个参数是说容器退出后随之将其删除。默认run 之后 dockers不会手动删除
- bash:放在镜像名后的是 命令,
exit
退出当前 container
- [TODO] 将当前 container 打包成一个 image
dokcer container 命令
- container 的 启动,停止和重启
docker container start [name]
- 启动已经终止(
exited
)的容器
- 启动已经终止(
docker container start [name]
- 重启启动
docker container restart [name]
docker run 常用参数
arg | 说明 |
---|---|
--name | 为容器指定一个名称 |
-it | 通过终端的方式交互 |
-p , --publish | 发布一个容器的端口到宿主机上 |
-v , --volume | 绑定挂载一个卷。 |
--gpus | 允许容器访问GPU。 |
进入正在运行的container
docker exec -it <container-id>
$ docker container ls CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 69d137adef7a ubuntu:latest "/bin/bash" 18 seconds ago Up 17 seconds zealous_swirles $ docker exec -it 69d1 bash root@69d137adef7a:/#
docker 中的数据管理
- 挂在主机目录
-
-v
: 一种简化的挂载方式, 只需提供源路径和目标路径即可docker run -v /host/path:/container/path my_image
-
--mount
更为灵活和强大的挂载方式,允许你指定多个选项。可以指定挂载的类型(volume、bind mount),源路径、目标路径,并且可以设置一些额外的选项,比如读写权限。docker run --mount type=bind,source=/host/path,target=/container/path,readonly my_image # --mount参数指定了一个绑定挂载,将主机的 /host/path 目录挂载到容器的 /container/path目录,并设置为只读。
-
docker 中 网络配置
TODO