Docker 是一个开源的平台,旨在使应用程序的开发、部署和运行更轻松。Docker 使用容器这一轻量级的虚拟化技术,使应用程序及其所有依赖项都可以打包到一个标准化的单元中。
Docker常用命令
Docker 容器相关命令
运行容器
1
docker run -it --name <容器名> <镜像名>:<标签>
例如:
1
docker run -it --name mynginx nginx:latest
列出正在运行的容器
1
docker ps
列出所有容器(包括已停止的容器)
1
docker ps -a
停止容器
1
docker stop <容器ID或容器名>
启动容器
1
docker start <容器ID或容器名>
重启容器
1
docker restart <容器ID或容器名>
删除容器
1
docker rm <容器ID或容器名>
查看容器日志
1
docker logs <容器ID或容器名>
进入正在运行的容器
1
docker exec -it <容器ID或容器名> /bin/bash
Docker 镜像相关命令
搜索镜像
1
docker search <镜像名>
例如:
1
docker search nginx
拉取镜像
1
docker pull <镜像名>:<标签>
例如:
1
docker pull nginx:latest
列出本地镜像
1
docker images
删除镜像
1
docker rmi <镜像ID或镜像名>
构建镜像
1
docker build -t <镜像名>:<标签> <Dockerfile路径>
例如:
1
docker build -t myapp:1.0 .
Docker 网络相关命令
列出网络
1
docker network ls
创建网络
1
docker network create <网络名>
删除网络
1
docker network rm <网络名>
Docker 卷相关命令
列出卷
1
docker volume ls
创建卷
1
docker volume create <卷名>
删除卷
1
docker volume rm <卷名>
开机自启
要让 Docker 容器在系统启动时自动运行,你可以使用 Docker 提供的 --restart
选项来配置容器的重启策略。以下是几种常见的重启策略:
- no: 容器不会自动重启。
- always: 无论容器退出状态如何,总是自动重启。
- on-failure: 只有在容器以非零退出代码退出时才自动重启。
- unless-stopped: 容器将始终重新启动,除非它被手动停止。
要设置一个容器在系统启动时自动运行,可以使用 --restart
选项创建或更新容器。例如:
创建新的自动重启容器
如果你还没有创建容器,可以在运行 docker run
命令时添加 --restart
选项。例如,使用 gotify/server
镜像:
1 | docker run -d --name gotify-server --restart always gotify/server |
更新现有的容器以自动重启
如果你已经有一个容器,并希望更新它的重启策略,可以使用 docker update
命令:
1 | docker update --restart always gotify-server |
验证容器的重启策略
你可以使用 docker inspect
命令来验证容器的重启策略:
1 | docker inspect gotify-server --format='{{.HostConfig.RestartPolicy}}' |
示例:启动多个容器并设置自动重启
假设你有多个容器需要设置自动重启策略,你可以按如下方式操作:
Bitwarden Setup
1
docker run -d --name bitwarden-setup --restart always bitwarden/setup:2024.1.2
Qinglong
1
docker run -d --name qinglong --restart always whyour/qinglong:latest
Certbot
1
docker run -d --name certbot --restart always certbot/certbot:latest
Watchtower
1
docker run -d --name watchtower --restart always containrrr/watchtower:latest
管理自动启动的服务
除了使用 Docker 自身的重启策略,你还可以使用系统服务管理工具(如 systemd
)来确保 Docker 服务在系统启动时自动启动,并配置自定义的服务单元文件来管理 Docker 容器的启动。以下是一个简单的 systemd
服务单元文件的示例:
1 | [Unit] |
将上述内容保存为 /etc/systemd/system/gotify-server.service
,然后启用和启动服务:
1 | sudo systemctl enable gotify-server |
这样配置后,系统启动时将自动启动 gotify-server
容器。