前言

重新拾起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