安装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 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

添加新评论

3 + 12 =