Docker指令收集
安装Docker
1.软件源安装
apt install -y docker.io docker-compose
自启动Docker
systemctl enable --now docker
2.官方源安装
curl -fsSL https://get.docker.com | bash
设置开机自启
systemctl enable docker
启动Dcoker
systemctl start docker
3.常用软件包+docker一键脚本
apt update -y
apt install -y wget vim sudo curl git
wget -qO- get.docker.com | bash
docker -v
systemctl enable docker
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version
Docker Compose实例
示例
version: '3.9' # 指定 Docker Compose 文件的版本,确保兼容性。
services: # 定义服务部分,包含所有要运行的容器。
web: # 定义一个名为 web 的服务。
image: nginx:latest # 使用官方 Nginx 镜像的最新版本。
ports:
- "8080:80" # 将宿主机的 8080 端口映射到容器的 80 端口。
volumes:
- ./html:/usr/share/nginx/html # 将本地 html 文件夹挂载到容器的 Nginx 网页目录。
depends_on:
- db # 声明 web 服务依赖于 db 服务。
db: # 定义一个名为 db 的服务。
image: mysql:5.7 # 使用官方 MySQL 镜像的 5.7 版本。
environment: # 设置环境变量。
MYSQL_ROOT_PASSWORD: rootpass # 设置 MySQL 根用户的密码。
MYSQL_DATABASE: exampledb # 初始化创建一个名为 exampledb 的数据库。
MYSQL_USER: user # 设置 MySQL 普通用户的用户名。
MYSQL_PASSWORD: userpass # 设置 MySQL 普通用户的密码。
volumes:
- db_data:/var/lib/mysql # 将 MySQL 数据存储到命名卷 db_data 中,确保数据持久化。
volumes: # 定义命名卷。
db_data: # 定义一个名为 db_data 的卷,用于存储数据库数据。
执行
1.保存为 docker-compose.yml 文件。
2.在文件所在目录执行:
docker-compose up -d
- -d 参数表示以后台模式运行。
3.访问 http://localhost:8080 即可查看 Nginx 默认页面。
4.停止服务:
docker-compose down
- 停止所有容器,并删除关联的网络和临时卷(命名卷保留)。
Docker指令
镜像管理
搜索镜像
docker search <镜像名>
拉取镜像
docker pull <镜像名>:<标签>
查看本地镜像
docker images
删除镜像
docker rmi <镜像名或ID>
构建镜像
docker build -t <镜像名>:<标签> <路径>
查看镜像历史
docker history <镜像名>:<标签>
导出镜像
docker save -o <文件名.tar> <镜像名>:<标签>
加载镜像
docker load -i <文件名.tar>
推送镜像到仓库
docker push <镜像名>:<标签>
打标签
docker tag <源镜像:标签> <目标镜像:标签>
查看镜像详细信息
docker inspect <镜像名>:<标签>
查找镜像的文件系统大小
docker image inspect <镜像名> --format '{{.Size}}'
容器管理
创建并运行容器
docker run [选项] <镜像名>
查看运行中的容器
docker ps
查看所有容器
docker ps -a
启动容器
docker start <容器ID或名称>
停止容器
docker stop <容器ID或名称>
删除容器
docker rm <容器ID或名称>
重启容器
docker restart <容器ID或名称>
查看容器日志
docker logs <容器ID或名称>
查看容器的资源使用情况
docker stats <容器ID或名称>
进入容器
docker exec -it <容器ID或名称> /bin/bash
附加到正在运行的容器
docker attach <容器ID或名称>
查看容器配置
docker inspect <容器ID或名称>
导出容器文件系统
docker export <容器ID或名称> > <文件名.tar>
获取容器的 IP 地址
docker inspect --format '{{ .NetworkSettings.IPAddress }}' <容器ID或名称>
数据卷管理
创建数据卷
docker volume create <数据卷名称>
查看数据卷
docker volume ls
查看数据卷详情
docker volume inspect <数据卷名称>
删除数据卷
docker volume rm <数据卷名称>
清理未使用的数据卷
docker volume prune
将数据卷挂载到容器
docker run -v <数据卷名称>:<容器路径> <镜像名>
网络管理
创建网络
docker network create <网络名>
查看网络
docker network ls
查看网络详情
docker network inspect <网络名>
删除网络
docker network rm <网络名>
连接容器到网络
docker network connect <网络名> <容器名>
断开容器与网络
docker network disconnect <网络名> <容器名>
查看容器的网络连接
docker inspect <容器名> | grep Network
查看容器的网络信息
docker exec <容器ID或名称> ifconfig
高级操作
导出镜像
docker save -o <文件名.tar> <镜像名>:<标签>
加载镜像
docker load -i <文件名.tar>
执行脚本
docker exec -it <容器ID或名称> /bin/bash -c '<脚本命令>'
创建并启动容器
docker run -d --name <容器名> <镜像名>
停止并删除容器
docker rm -f <容器ID或名称>
实时查看容器资源使用
docker stats <容器ID或名称>
查看容器运行时状态
docker inspect <容器ID或名称>
查看日志实时更新
docker logs -f <容器ID或名称>
查找 Dockerfile 文件
docker history <镜像名>:<标签>
清理 Docker 系统
docker system prune
清理未使用的镜像
docker image prune
清理未使用的容器
docker container prune
清理未使用的网络
docker network prune
查看 Docker 存储使用情况
docker system df
测试容器的性能
docker stats <容器ID或名称>
查看所有活动的网络
docker network inspect bridge
查看当前的 Docker 环境变量
docker info
列出所有可用的 Docker 命令
docker --help
查看 Docker 版本
docker version
查看 Docker 配置信息
docker info
Docker Compose的案例
mkdir -p /root/docker/项目
cd /root/docker/项目
nano docker-compose.yml
LobeChat
~/lobechat/docker-compose.yaml
version: '3.8'
services:
lobe-chat:
image: lobehub/lobe-chat
container_name: lobe-chat
restart: always
ports:
- '3210:3210'
environment:
OPENAI_API_KEY: sk-xxxx
OPENAI_PROXY_URL: https://api-proxy.com/v1
ACCESS_CODE: lobe66
$ docker-compose up -d
3X-UI
安装Docker:
bash <(curl -sSL https://get.docker.com)
克隆仓库:
git clone https://github.com/MHSanaei/3x-ui.git
cd 3x-ui运行服务:
docker compose up -d
或
docker run -itd \
-e XRAY_VMESS_AEAD_FORCED=false \
-v $PWD/db/:/etc/x-ui/ \
-v $PWD/cert/:/root/cert/ \
--network=host \
--restart=unless-stopped \
--name 3x-ui \
ghcr.io/mhsanaei/3x-ui:latest
运行
cd 3x-ui
docker compose down
docker compose pull 3x-ui
docker compose up -d
删除
docker stop 3x-ui
docker rm 3x-ui
cd --
rm -r 3x-ui