小康文章阅读笔记

小康文章阅读笔记

Docker学习

2024-11-19

Docker Ubuntu安装

安装的文档点击连接查看

  1. 卸载旧版本Docker
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done

2 设置Docker apt仓库

# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# Add the repository to Apt sources:
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
  1. 安装Docker
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  1. 设置用户组
#创建docker组
sudo groupadd docker
#增加docker组
sudo usermod -aG docker $USER
#测试
docker version

[慎用]Docker Desktop Ubuntu下安装[截至2024-12-21]

此方法目前无法桥接CUDA,需要用到的勿用此方法

尝试进行安装Docker Desktop :

sudo apt install gnome-terminal

下载Docker Desktop安装包

wget https://desktop.docker.com/linux/main/amd64/docker-desktop-amd64.deb

设置docker的apt仓库:

# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# Add the repository to Apt sources:
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$UBUNTU_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

并在对应位置进行安装:

sudo apt-get update
sudo apt-get install ./docker-desktop-amd64.deb

可以忽略类似如下错误信息:

N: 由于文件'/home/***/install/docker/docker-desktop-amd64.deb'无法被用户'_apt'访问,已脱离沙盒并提权为根用户来进行下载。 - pkgAcquire::Run (13: 权限不够)

登陆:

gpg --generate-key

随后会产生public key

GnuPG needs to construct a user ID to identify your key.

Real name: Molly
Email address: molly@example.com
You selected this USER-ID:
   "Molly <molly@example.com>"

Change (N)ame, (E)mail, or (O)kay/(Q)uit? O
pubrsa3072 2022-03-31 [SC] [expires: 2024-03-30]
 <generated gpg-id public key>
uid          Molly <molly@example.com>
subrsa3072  2022-03-31 [E] [expires: 2024-03-30]

将上文得到的key使用pass进行初始化:

pass init <your_generated_gpg-id_public_key>

若卡登陆一般是开了小猫咪的缘故,可以按照此连接进行设置如下进行设置。

Docker探究笔记

Docker光速入门

1. image 文件

列出所有image文件&删除image文件

# 列出所有docker文件
docker image ls

# 删除 image 文件
docker image rm [imageName]

2. Docker抓取

Pull cuda环境:

docker pull nvidia/cuda:12.1.0-cudnn8-devel-ubi8

运行这个image

docker container run nvidia/cuda:12.1.0-cudnn8-devel-ubi8

但是运行此容器会直接停止运行,如果需要终端交互可以输入如下:

docker container run -it nvidia/cuda:12.1.0-cudnn8-devel-ubi8 bash

3. 容器文件

查看正在运行的容器文件和列出所有容器文件:

# 列出本机正在运行的容器
docker container ls

#列出本机所有容器,包括终止运行的容器
docker container ls --all

4. 启动停止容器

  1. 启停容器
    前面的docker container run命令是新建容器,每运行一次,就会新建一个容器。同样的命令运行两次,就会生成两个一模一样的容器文件。如果希望重复使用容器,就要使用docker container start命令,它用来启动已经生成、已经停止运行的容器文件。
   docker container start [containerID]

对于停止容器:

   docker container stop [containerID]
  1. 查看容器Shell输出日志
   docker container logs [containerID]
  1. 进入一个正在运行的docker容器
   docker container exec -it [containerID] /bin/bash

5. 本机和容器中的数据交互

  1. 从正在运行的Docker容器中拷贝数据到本机
  docker container cp [containID]:[/path/to/file] .
  1. 挂载本地目录
# 将宿主主机的/data1目录挂载到容器的/data2目录
  docker run -it -v /data1:/data2 centos /bin/bash

-v 参数中,冒号":"前面的目录是宿主主机目录,后面的目录是容器内目录