mirror of
https://github.com/Dichgrem/Blog.git
synced 2025-12-16 05:22:00 -05:00
update:docker
This commit is contained in:
@@ -57,6 +57,164 @@ echo \
|
|||||||
sudo apt update && sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
|
sudo apt update && sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
|
||||||
````
|
````
|
||||||
|
|
||||||
|
## 常用命令
|
||||||
|
### 基础命令
|
||||||
|
|
||||||
|
| 命令 | 说明 |
|
||||||
|
| ------------------------- | ------------------------ |
|
||||||
|
| `docker version` | 查看 Docker 版本信息 |
|
||||||
|
| `docker info` | 查看 Docker 系统信息,包括镜像和容器数量 |
|
||||||
|
| `docker help` | 查看帮助信息 |
|
||||||
|
| `docker <command> --help` | 查看某个命令的详细帮助 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 镜像相关命令(Images)
|
||||||
|
|
||||||
|
| 命令 | 说明 |
|
||||||
|
| ---------------------------------- | ----------------- |
|
||||||
|
| `docker images` | 列出本地所有镜像 |
|
||||||
|
| `docker search nginx` | 从 Docker Hub 搜索镜像 |
|
||||||
|
| `docker pull nginx:latest` | 拉取镜像 |
|
||||||
|
| `docker rmi nginx:latest` | 删除镜像 |
|
||||||
|
| `docker rmi $(docker images -q)` | 删除所有镜像 |
|
||||||
|
| `docker inspect nginx` | 查看镜像详细信息 |
|
||||||
|
| `docker tag nginx myrepo/nginx:v1` | 给镜像打标签 |
|
||||||
|
| `docker save -o nginx.tar nginx` | 导出镜像为 tar 包 |
|
||||||
|
| `docker load -i nginx.tar` | 从 tar 文件加载镜像 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 容器管理命令(Containers)
|
||||||
|
|
||||||
|
| 命令 | 说明 |
|
||||||
|
| --------------------------------------------- | ----------------- |
|
||||||
|
| `docker ps` | 查看正在运行的容器 |
|
||||||
|
| `docker ps -a` | 查看所有容器(包括已停止) |
|
||||||
|
| `docker run -d -p 80:80 --name web nginx` | 启动容器(后台运行) |
|
||||||
|
| `docker run -it ubuntu /bin/bash` | 启动交互式容器 |
|
||||||
|
| `docker exec -it web bash` | 进入正在运行的容器 |
|
||||||
|
| `docker logs -f web` | 查看容器日志(`-f` 实时输出) |
|
||||||
|
| `docker stop web` | 停止容器 |
|
||||||
|
| `docker start web` | 启动容器 |
|
||||||
|
| `docker restart web` | 重启容器 |
|
||||||
|
| `docker rm web` | 删除容器 |
|
||||||
|
| `docker rm $(docker ps -aq)` | 删除所有容器 |
|
||||||
|
| `docker inspect web` | 查看容器详细信息 |
|
||||||
|
| `docker stats` | 查看容器资源使用情况 |
|
||||||
|
| `docker top web` | 查看容器内运行的进程 |
|
||||||
|
| `docker cp web:/path/in/container ./localdir` | 从容器复制文件到主机 |
|
||||||
|
| `docker cp ./file web:/path/in/container` | 从主机复制文件到容器 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 网络相关命令(Networks)
|
||||||
|
|
||||||
|
| 命令 | 说明 |
|
||||||
|
| ------------------------------------- | -------- |
|
||||||
|
| `docker network ls` | 列出所有网络 |
|
||||||
|
| `docker network inspect bridge` | 查看网络详情 |
|
||||||
|
| `docker network create mynet` | 创建自定义网络 |
|
||||||
|
| `docker network connect mynet web` | 将容器连接到网络 |
|
||||||
|
| `docker network disconnect mynet web` | 将容器从网络断开 |
|
||||||
|
| `docker network rm mynet` | 删除网络 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 数据卷(Volumes)
|
||||||
|
|
||||||
|
| 命令 | 说明 |
|
||||||
|
| ---------------------------------- | ---------- |
|
||||||
|
| `docker volume ls` | 查看所有卷 |
|
||||||
|
| `docker volume create mydata` | 创建数据卷 |
|
||||||
|
| `docker volume inspect mydata` | 查看卷详情 |
|
||||||
|
| `docker volume rm mydata` | 删除数据卷 |
|
||||||
|
| `docker run -v mydata:/data nginx` | 启动容器并挂载卷 |
|
||||||
|
| `docker run -v $(pwd):/app nginx` | 挂载主机目录到容器中 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 构建与导出镜像(Build & Export)
|
||||||
|
|
||||||
|
| 命令 | 说明 |
|
||||||
|
| --------------------------------------- | ------------ |
|
||||||
|
| `docker build -t myapp:latest .` | 构建镜像 |
|
||||||
|
| `docker commit web myimage:v1` | 将容器保存为镜像 |
|
||||||
|
| `docker save -o myimage.tar myimage:v1` | 导出镜像文件 |
|
||||||
|
| `docker load -i myimage.tar` | 导入镜像文件 |
|
||||||
|
| `docker export web > web.tar` | 导出容器文件系统 |
|
||||||
|
| `docker import web.tar myweb:v1` | 从 tar 文件导入镜像 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 系统清理与维护
|
||||||
|
|
||||||
|
| 命令 | 说明 |
|
||||||
|
| ------------------------ | --------------- |
|
||||||
|
| `docker system df` | 显示磁盘使用情况 |
|
||||||
|
| `docker system prune` | 清理无用的容器、镜像、卷和网络 |
|
||||||
|
| `docker image prune` | 清理未使用的镜像 |
|
||||||
|
| `docker container prune` | 清理已停止的容器 |
|
||||||
|
| `docker volume prune` | 清理无用卷 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Docker Compose(多容器管理)
|
||||||
|
|
||||||
|
| 命令 | 说明 |
|
||||||
|
| ------------------------ | -------- |
|
||||||
|
| `docker compose up -d` | 启动服务(后台) |
|
||||||
|
| `docker compose down` | 停止并删除容器 |
|
||||||
|
| `docker compose ps` | 查看当前项目容器 |
|
||||||
|
| `docker compose logs -f` | 查看日志 |
|
||||||
|
| `docker compose build` | 重新构建服务镜像 |
|
||||||
|
| `docker compose restart` | 重启服务 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 卸载 Docker
|
||||||
|
|
||||||
|
> 删除所有 Docker 容器和 Docker 本身
|
||||||
|
|
||||||
|
1. 首先停止所有正在运行的容器:
|
||||||
|
```
|
||||||
|
docker stop $(docker ps -aq)
|
||||||
|
```
|
||||||
|
2. 删除所有容器
|
||||||
|
|
||||||
|
删除所有容器(包括停止的容器):
|
||||||
|
```
|
||||||
|
docker rm $(docker ps -aq)
|
||||||
|
```
|
||||||
|
3. 删除所有镜像
|
||||||
|
|
||||||
|
```
|
||||||
|
docker rmi $(docker images -q)
|
||||||
|
```
|
||||||
|
4. 删除所有网络
|
||||||
|
|
||||||
|
```
|
||||||
|
docker network prune -f
|
||||||
|
```
|
||||||
|
5. 删除所有未使用的卷
|
||||||
|
|
||||||
|
```
|
||||||
|
docker volume prune -f
|
||||||
|
```
|
||||||
|
6. 卸载 Docker
|
||||||
|
|
||||||
|
如果您希望完全删除 Docker 本身,可以执行以下命令:
|
||||||
|
```
|
||||||
|
sudo apt-get purge docker-ce docker-ce-cli containerd.io
|
||||||
|
sudo apt-get autoremove --purge
|
||||||
|
sudo rm -rf /var/lib/docker
|
||||||
|
sudo rm -rf /etc/docker
|
||||||
|
```
|
||||||
|
这些命令会卸载 Docker 软件并删除 Docker 数据目录。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
|
||||||
## 使用Docker-Compose
|
## 使用Docker-Compose
|
||||||
|
|
||||||
- 目标:创建一个``Searxng服务``并对外开放。
|
- 目标:创建一个``Searxng服务``并对外开放。
|
||||||
@@ -26,7 +26,7 @@ tags = ["乱七八糟"]
|
|||||||
# 更新系统
|
# 更新系统
|
||||||
apt update && apt upgrade -y
|
apt update && apt upgrade -y
|
||||||
apt install wget curl vim sudo neofetch
|
apt install wget curl vim sudo neofetch
|
||||||
# 添加普通用户并赋予sudo
|
# 创建用户并赋予sudo
|
||||||
adduser xxx
|
adduser xxx
|
||||||
sudo usermod -aG sudo xxx
|
sudo usermod -aG sudo xxx
|
||||||
```
|
```
|
||||||
@@ -166,71 +166,6 @@ sudo cat /etc/ssh/sshd_config | grep -E 'PasswordAuthentication|PubkeyAuthentica
|
|||||||
|
|
||||||
> 注意**authorized_keys**的权限为600,如果不是则需要改正:``chmod 600 ~/.ssh/authorized_keys``
|
> 注意**authorized_keys**的权限为600,如果不是则需要改正:``chmod 600 ~/.ssh/authorized_keys``
|
||||||
|
|
||||||
|
|
||||||
## Docker
|
|
||||||
|
|
||||||
### 脚本安装
|
|
||||||
|
|
||||||
Docker 官方提供了一个安装脚本,可以自动选择适当版本,并规避仓库问题:
|
|
||||||
```
|
|
||||||
curl -fsSL https://get.docker.com -o get-docker.sh
|
|
||||||
sudo sh get-docker.sh
|
|
||||||
```
|
|
||||||
这个脚本会为你的系统自动选择合适的安装方式。
|
|
||||||
|
|
||||||
|
|
||||||
### 卸载 Docker
|
|
||||||
|
|
||||||
要删除所有 Docker 容器和 Docker 本身,可以按照以下步骤操作:
|
|
||||||
1. 首先停止所有正在运行的容器:
|
|
||||||
```
|
|
||||||
docker stop $(docker ps -aq)
|
|
||||||
```
|
|
||||||
2. 删除所有容器
|
|
||||||
|
|
||||||
删除所有容器(包括停止的容器):
|
|
||||||
```
|
|
||||||
docker rm $(docker ps -aq)
|
|
||||||
```
|
|
||||||
3. 删除所有镜像
|
|
||||||
|
|
||||||
```
|
|
||||||
docker rmi $(docker images -q)
|
|
||||||
```
|
|
||||||
4. 删除所有网络
|
|
||||||
|
|
||||||
```
|
|
||||||
docker network prune -f
|
|
||||||
```
|
|
||||||
5. 删除所有未使用的卷
|
|
||||||
|
|
||||||
```
|
|
||||||
docker volume prune -f
|
|
||||||
```
|
|
||||||
6. 卸载 Docker
|
|
||||||
|
|
||||||
最后,如果您希望完全删除 Docker 本身,可以执行以下命令:
|
|
||||||
```
|
|
||||||
sudo apt-get purge docker-ce docker-ce-cli containerd.io
|
|
||||||
sudo apt-get autoremove --purge
|
|
||||||
sudo rm -rf /var/lib/docker
|
|
||||||
sudo rm -rf /etc/docker
|
|
||||||
```
|
|
||||||
|
|
||||||
这些命令会卸载 Docker 软件并删除 Docker 数据目录。
|
|
||||||
|
|
||||||
### Docker 常用命令
|
|
||||||
```
|
|
||||||
docker-compose up -d #在后台启动容器
|
|
||||||
docker-compose ps #查看正在运行的容器
|
|
||||||
docker-compose down #停止并移除所有运行中的容器
|
|
||||||
docker-compose stop #停止容器,但保留数据和卷
|
|
||||||
docker pull <镜像名称>:latest #拉取最新镜像
|
|
||||||
docker-compose build #更新镜像后重新构建
|
|
||||||
docker-compose logs #查看日志
|
|
||||||
docker image prune -a #删除所有未被容器使用的镜像
|
|
||||||
```
|
|
||||||
|
|
||||||
## 常用环境
|
## 常用环境
|
||||||
|
|
||||||
- ALL
|
- ALL
|
||||||
@@ -444,6 +379,23 @@ GRUB_DEFAULT="Advanced options for Debian>Debian, with Linux 6.8.6-x64v3-xanmod1
|
|||||||
sudo update-grub
|
sudo update-grub
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## 更换系统
|
||||||
|
|
||||||
|
除了到VPS后台更换外,还可以使用这个脚本:
|
||||||
|
|
||||||
|
- [bin456789/reinstall](github.com/bin456789/reinstall)
|
||||||
|
|
||||||
|
```
|
||||||
|
一键重装到 Linux,支持 19 种常见发行版
|
||||||
|
一键重装到 Windows,使用官方原版 ISO 而非自制镜像,脚本支持自动查找 ISO 链接、自动安装 VirtIO 等公有云驱动
|
||||||
|
支持任意方向重装,即 Linux to Linux、Linux to Windows、Windows to Windows、Windows to Linux
|
||||||
|
自动设置 IP,智能设置动静态,支持 /32、/128、网关不在子网范围内、纯 IPv6、IPv4/IPv6 在不同的网卡
|
||||||
|
专门适配低配小鸡,比官方 netboot 需要更少的内存
|
||||||
|
全程用分区表 ID 识别硬盘,确保不会写错硬盘
|
||||||
|
支持 BIOS、EFI 引导,支持 ARM 服务器
|
||||||
|
不含自制包,所有资源均实时从镜像源获得
|
||||||
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
**Done.**
|
**Done.**
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user