前言
重新拾起docker是因为刷到了:40分钟的Docker实战攻略,一期视频精通Docker
或者我更喜欢文字版:tech-shrimp/docker_installer
镜像源
# /etc/docker/daemon.json
{
    "registry-mirrors": [
        "https://docker.m.daocloud.io",
        "https://docker.1panel.live",
        "https://hub.rat.dev"
    ]
}
systemctl daemon-reload
systemctl restart docker
拉取镜像
# 拉取镜像
docker pull nginx
# 详细写法
docker pull docker.io/library/naginx:latest
#           仓库地址/命名空间/镜像名/版本号
# 拉取特定CPU架构的镜像
docker pull --platform=linux/amd64 nginx
# 列出已下载的镜像
docker images
# 删除镜像
docker rmi nginx
运行容器
# 后台运行容器
docker run -d nginx     #detached mode
# 查看容器状态
docker ps -a    # process status -all
运行参数
# 端口映射
docker run -p 8080:80     # 宿主机:容器
# 挂载卷
docker run -v 宿主机目录:容器目录   # 绑定挂载
# 命名卷挂载
docker volume create volume_name    # 创建命名卷
docker run -v 挂载卷的名字:容器目录
# 命名卷管理
docker volume list  # 列出所有命名卷
docker volume inspect volume_name   # 命名卷的真实目录
docker volume rm volume_name    # 删除命名卷
docker volume prune -a  # 删除所有未被使用的卷
# 环境变量参数
docker run -d \
-p 80:80 \
-e USERNAME=admin \
-e PASSWORD=admin \
# 查看容器的参数
docker inspect 容器id
# 进入运行的容器
docker exec -it 容器id /bin/bash
# 在容器内安装软件
cat /etc/os-release     # 先查看发行版本
# 然后再apt/yum/pacman
用户权限
配置filebrowser时出现了permission denied
最开始是在创建时,容器需要在/opt/filebrowser/config下创建settings.json,报permission denied
再就是网页端创建文件时报mkdir /srv/test/111: permission denied,询问AI得以解决
# 先查看宿主机用户ID
id -u
# 然后在docker run命令中添加用户参数(假设用户ID是1000)
sudo docker run -d \
    -v /宿主机上需要展示的目录:/srv \
    -v /opt/filebrowser/database:/database \
    -v /opt/filebrowser/config:/config \
    -p 8080:80 \
    --name filebrowser \
    --user $(id -u):$(id -g) \      # 主要是这里
    filebrowser/filebrowser
