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