Docker常用命令
修改Docker 镜像源
1.编辑一下文件
sudo vi /etc/docker/daemon.json
2.修改成一下配置
{
"registry-mirrors": [
"你自己的加速地址",
"https://dh.chjina.com",
"https://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn"
]
}
3.重启docker
sudo systemctl daemon-reload
sudo systemctl restart docker
Docker CLI详解
例:
docker run -d --restart=unless-stopped -v /etc/alist:/opt/alist/data -p 5244:5244 -e PUID=0 -e PGID=0 -e UMASK=022 --name="alist" alist666/alist:latest
核心结构
docker run [参数] 镜像名:标签
表示启动一个新的 Docker 容器,使用 alist666/alist:latest
镜像的最新版本。
参数详解
后台运行模式
-d
以守护进程(detached)模式运行容器,即容器在后台运行。
自动重启策略
--restart=unless-stopped
容器异常退出时会自动重启(如程序崩溃、系统重启等)。
如果用户手动停止容器(
docker stop
),则不会自动重启。
数据卷映射
-v /etc/alist:/opt/alist/data
前面是宿主机的目录。后面是容器的目录一般修改前面的宿主机的目录即可,修改容器的目录可能会无法启动。将宿主机的
/etc/alist
目录挂载到容器的/opt/alist/data
。作用:配置文件和数据持久化(重启容器不丢失数据)。
注意:需确保宿主机
/etc/alist
目录存在,否则会自动创建空目录。
端口映射
-p 5244:5244
将宿主机的 5244 端口映射到容器的 5244 端口。
访问方式:通过
http://宿主机IP:5244
访问 Alist 服务。
用户权限配置
-e PUID=0 -e PGID=0
设置容器内进程的运行用户权限。
PUID=0
和PGID=0
表示以 root 用户运行(0 是 root 的 ID)。安全问题:非容器作者推荐不建议使用此命令
文件权限掩码
-e UMASK=022
控制新建文件的默认权限(UNIX 权限掩码)。
022
表示文件权限为755
(目录)和644
(文件)。
容器命名
--name="alist"
将容器命名为
alist
,便于通过名称管理容器(如docker stop alist
)。
镜像信息
alist666/alist:latest
使用 Docker Hub 上用户
alist666
维护的 Alist 镜像。latest
标签表示使用最新版本(生产环境建议指定稳定版本号)。
Docker Compose 详解
version: '3.3' # 指定 Docker Compose 版本
services: # 定义服务列表
alist: # 服务名称(自定义)
image: 'alist666/alist:beta' # 指定镜像(此处为 beta 测试版)
container_name: alist # 容器命名(覆盖默认生成的名称)
volumes: # 数据卷配置
- '/etc/alist:/opt/alist/data' # 宿主机目录映射,前面的是宿主机,后面是容器内
ports: # 端口映射
- '5244:5244' # 宿主机端口:容器端口
environment: # 环境变量
- PUID=0 # 用户权限
- PGID=0 # 用户组权限
- UMASK=022 # 文件权限掩码
restart: unless-stopped # 重启策略 容器异常退出时会自动重启(如程序崩溃、系统重启等)手动
Docker 常用命令
查看运⾏中的容器
sudo docker ps
查看所有容器
docker ps -a
搜索镜像
docker search nginx
下载镜像
docker pull nginx
下载指定版本镜像
docker pull nginx:1.26.0
查看所有镜像
docker images
删除指定id的镜像
docker rmi e784f4560448
运⾏⼀个新容器
docker run nginx
停⽌容器
docker stop keen_blackwell
启动容器
docker start 592
重启容器
docker restart 592
查看容器资源占⽤情况
docker stats 592
查看容器⽇志
docker logs 592
删除指定容器
docker rm 592
强制删除指定容器
docker rm -f 592
后台启动容器
docker run -d --name mynginx nginx
后台启动并暴露端⼝
docker run -d --name mynginx -p 80:80 nginx
进⼊容器内部
docker exec -it mynginx /bin/bash
提交容器变化打成⼀个新的镜像
docker commit -m "update index.html" mynginx mynginx:v1.0
保存镜像为指定⽂件
docker save -o mynginx.tar mynginx:v1.0
删除多个镜像
docker rmi bde7d154a67f 94543a6c1aef e784f4560448
这有帮助吗?