Docker

发布于 2023-02-15  579 次阅读


安装

群晖

通过套件中心搜索安装即可

通用脚本安装

  1. 切换到root用户,拉去脚本安装
    sudo -i #使用root用户登录,按提示输入密码,密码默认不显示,输入完直接回车即可
    curl -fsSL get.docker.com -o get-docker.sh #脚本拉取
  2. 执行脚本
    sh get-docker.sh --mirror Aliyun \\使用阿里云加速
  3. 安装docker-compose
    curl -L "https://github.com/docker/compose/releases/download/1.26.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

    如果速度感人,可以用以下命令

    curl -L https://get.daocloud.io/docker/compose/releases/download/1.26.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

    提升权限

    sudo chmod +x /usr/local/bin/docker-compose

    测试是否成功

    docker-compose --version

centos系统安装docker

  1. 如果有安装过以下版本,必须执行以下代码先行删除旧版本
    yum remove docker \
    docker-client \
    docker-client-latest \
    docker-common \
    docker-latest \
    docker-latest-logrotate \
    docker-logrotate \
    docker-engine
  2. 安装软件包(提供实用程序)
    yum install -y yum-utils
  3. 设置存储库
    yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
  4. 安装
    yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin

如果系统提示接受 GPG 密钥,请验证指纹是否匹配,如果是,请接受它。060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35

Ubuntu安装docker

  1. 卸载旧版本
    sudo apt-get remove docker docker-engine docker.io containerd runc
  2. 更新软件包索引并安装软件包以允许使用 基于 HTTPS 的存储库
    apt-get update
    apt-get install \
    ca-certificates \
    curl \
    gnupg \
    lsb-release
  3. 添加 Docker 的官方 GPG 密钥
    mkdir -p /etc/apt/keyrings
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
  4. 设置存储库
    echo \
    "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
    $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  5. 更新包
    apt-get update

    运行时收到 GPG 错误?apt-get update
    默认掩码可能配置不正确,导致无法检测到 存储库公钥文件。尝试授予 Docker 的读取权限 更新包索引之前的公钥文件

    sudo chmod a+r /etc/apt/keyrings/docker.gpg
    sudo apt-get update
  6. 安装 Docker Engine、containerd 和 Docker Compose
    sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin

docker相关命令

#添加开机自启动
systemctl enable docker
#启动docker服务
systemctl start docker
#进入指定容器
docker exec -it 容器id /bin/bash
#启动指定容器
docker start 容器id
#重启指定容器
docker restart 容器id
#停止指定容器
docker stop 容器id
#强制停止指定容器
docker kill 容器id
#删除指定容器
docker rm 容器id
#复制文件
docker cp 容器名:要复制的文件的容器内路径 要复制到的宿主机路径
#查看磁盘占用情况
docker system df
#删除已停止的容器,因为rm命令无法删除运行在的容器;-q表示只显示ID
docker rm $(docker ps -a -q)
#删除悬空镜像,-f表示条件筛选,"dangling=true"表示悬空镜像
docker rmi $(docker images -f "dangling=true" -q)

神器:docker system prune

  • 该指令默认会清除所有如下资源:

    • 已停止的容器(container)
    • 未被任何容器所使用的卷(volume)
    • 未被任何容器所关联的网络(network)
    • 所有悬空镜像(image)
    • 清除构建镜像时的缓存(这个可是占用相当大)
  • 该指令默认只会清除悬空镜像,未被使用的镜像不会被删除,添加参数-a后可一并删除

  • 可以添加 -f参数用以忽略相关告警确认信息。

我使用的docker容器

  • Portainer——docker容器管理工具

  • 自动执行框架

  • B站录播姬

    docker run -d -v $(pwd)/bilibilirecorder:/rec -p 2356:2356   bililive/recorder
  • bililive-go

    可录制多个平台直播

    docker run --name="bililive-go" --restart=always -v /nxsg/bililive-go/video:/srv/bililive -p 8080:8080 -d chigusa/bililive-go
  • watchtower——自动更新容器

  • Jellyfin

    开源影音媒体服务器

    docker run -d \
    --name Jellyfin
    --restart=always
    -v $(pwd)/cache : /cache \
    -v $(pwd)/config : /config \
    -v $(pwd)/media : /media \
    -p 8096 : 8096
    Jellyfin/Jellyfin:latest
  • 青龙面板

    docker run -dit \
    -v $PWD/ql:/ql/data \
    -p 5700:5700 \
    --name qinglong \
    --hostname qinglong \
    --restart unless-stopped \
    whyour/qinglong:latest
  • Alist

    docker run -d --restart=always -v /etc/alist:/opt/alist/data -p 5244:5244 --name="alist" xhofe/alist:latest

创建容器后修改配置

  1. 关闭docker,这是前提
    systemctl stop docker #centos系统用这个
  2. 找到docker存放文件的目录
    docker info | grep 'Root'
  3. 查找需要修改的容器的ID
    docker ps -a
  4. 使用cd命令,进入容器目录;使用ll命令或者ls -l命令列出所有文件
  5. 使用vim等编辑器修改config.v2.json文件和hostconfig.json文件
  6. 修改完成后保存,再启动docker即可