Skip to content

Latest commit

 

History

History
196 lines (124 loc) · 5.05 KB

docker.md

File metadata and controls

196 lines (124 loc) · 5.05 KB

1. docker.md

学习 docker

2. 安装 docker

2.1. wsl(wsl 的 ubuntu) 下安装

直接 Docker Desktop for windows ,直接下载 windows 版本的 docker

2.2. linux(普通 ubuntu) 下安装

参考链接

  1. Set up Docker's repository .apt
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done

# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings


# 阿里 官方 二选一
# 阿里
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
# 官方
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg


sudo chmod a+r /etc/apt/keyrings/docker.gpg


# 阿里  官方  二选一
echo \
  "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# 官方 Add the repository to Apt sources:
echo \
  "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] 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. 安装
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

安装完之后 自动 systemctl 启动

2.3. 解决 gpu 无法调用问题(小心,会导致显卡驱动崩溃)

参考链接

2.4. 命令

  • docker ps

  • docker images

  • docker run -d --name ???? -p ??:?? ???

  • docker save -o kosmos2_model.tar kosmos2_show:latest

  • docker load -i kosmos2_show.tar

2.5. 挪动 docker 的目录

本来我只是想挪动一下镜像目录的,但是我发现不好挪动,干脆把整个都挪过去了

参考链接(里面软连接命令好像是错的,小心)

  1. 停掉 docker

    systemctl stop docker
    
  2. 查看一下 docker 原始目录在哪

  3. 创建新的 docker 目录(并指定权限)

    cd /data1 && sudo mkdir docker && sudo chmod 710 docker/
    
  4. 迁移数据

    sudo cp -r /var/lib/docker/. /data1/docker/
    
  5. 备份数据

    sudo mv /var/lib/docker /var/lib/docker.bak
    
  6. 建立软链接

    sudo ln -s /data1/docker /var/lib/docker
    
  7. 启动

    systemctl start docker
    

2.6. 加镜像

按照这个来

难用死了,还是用代理吧

2.7. docker pull 使用代理

官方文档

参考链接 2

实际上 docker pull 这种命令归 docker daemon 管,即 docker 的守护进程。而官方文档的操作正是把 docker daemon 进行代理。

操作前记得不要跑重要容器,因为后面要重启 docker 的

  1. 创建 docker.service 的目录

    sudo mkdir -p /etc/systemd/system/docker.service.d
    
  2. 写入配置

    sudo vim /etc/systemd/system/docker.service.d/http_proxy.conf
    

    内容如下:

    [Service]
    Environment="HTTP_PROXY=http://127.0.0.1:7890"
    Environment="HTTPS_PROXY=http://127.0.0.1:7890"
    Environment="NO_PROXY=localhost,127.0.0.1"
    
  3. 加载配置并重启

    sudo systemctl daemon-reload
    sudo systemctl restart docker
    
  4. 查看环境变量

    sudo systemctl show --property=Environment docker
    

3. 问题

3.1. docker 下使用 dpkg-reconfigure locales 无效

需要自己在启动容器的时候-e 指定的语言,怪

3.2. docker 启动时,不会执行/etc/profile

需要手动将环境变量永久化,ENV 如果写到一行里,是没办法$调用的,不同行的 ENV 就可以