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