Docker使用说明

  1. Docker使用说明
    1. Docker 的安装
    2. docker-compose的安装
    3. Docker 基本使用

Docker使用说明

基于Ubuntu20之后的系统使用Docker的操作说明。

如果是其他操作系统,如debian,请自行修改密钥地址和软件源。

Docker 的安装

  1. 更新 Ubuntu ,确保你的 Ubuntu 系统软件包是最新的。

    sudo apt-get update
    sudo apt-get upgrade
    
  2. 安装必要的依赖, Docker 需要一些额外的工具和库。

    sudo apt-get install -y \
        ca-certificates \
        curl \
        gnupg \
        lsb-release
    
  3. 添加 Docker 的 GPG 密钥,确保你安装的软件包来源是可信的。

    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
    
  4. 添加 Docker 的官方 APT 源。

    echo \
    "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
    $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    
  5. 安装 Docker 引擎和 Docker CLI。

    sudo apt-get update
    sudo apt-get install -y docker-ce docker-ce-cli containerd.io
    
  6. 验证 Docker 安装。

    sudo docker run hello-world
    

    这会拉取并运行一个简单的 Docker 容器。如果一切正常,你会看到一条成功消息。

  7. 配置 Docker 权限
    为了避免每次使用 Docker 都需要 sudo,你可以将自己添加到 docker 用户组。

    sudo usermod -aG docker $USER
    

注意:这会让你无需 sudo 即可运行 Docker 命令,但请注意这种设置可能具有安全风险。建议在生产环境中谨慎处理。

docker-compose的安装

要在 Ubuntu 上安装 Docker Compose,您需要确保已安装 Docker,然后可以下载 Docker Compose 的可执行文件并将其添加到系统的可执行路径中。以下是安装 Docker Compose 的步骤:

  1. 安装 Docker

    确保已在 Ubuntu 上安装 Docker。如果尚未安装,请先安装 Docker。请参照我之前提供的指南。

  2. 下载 Docker Compose 的二进制文件

    使用curlwget从官方 GitHub 存储库下载 Docker Compose 的最新版本。你可以查看 Docker Compose 发布页面 获取最新版本的版本号。

    # 确保 Docker Compose 的版本号最新
    DOCKER_COMPOSE_VERSION="2.24.0"  # 这是一个示例,请根据官方版本更新
    
    # 下载 Docker Compose 二进制文件
    # 注意这里的CPU架构 我选的x86_64 请根据自己的架构进行选择
    sudo curl -L "https://github.com/docker/compose/releases/download/v$DOCKER_COMPOSE_VERSION/docker-compose-linux-x86_64" -o /usr/local/bin/docker-compose
    
  3. 添加执行权限
    将下载的 Docker Compose 文件设为可执行状态。

    sudo chmod +x /usr/local/bin/docker-compose
    
  4. 检查 Docker Compose 是否成功安装
    验证 Docker Compose 是否已正确安装。

    docker-compose --version
    

    如果安装成功,你应该会看到 Docker Compose 的版本信息。

  5. 使用 Docker Compose

    安装完成后,你可以开始使用 Docker Compose。创建 docker-compose.yml 文件并在其中定义服务,然后使用 docker-compose up 启动服务。

注意事项
1. 在下载 Docker Compose 二进制文件时,确保从官方可信渠道下载。
2. 如果你需要 Docker Compose 的旧版本,可以在官方 GitHub 页面上找到以前的版本。
3. 请根据自己的机器系统和CPU架构选择正确的版本。

Docker 基本使用

  • 简单命令

    # 搜索镜像
    docker search <image>
    # 拉取镜像
    docker pull <image>:<tag>
    # 列出本地的 Docker 镜像
    docker images
    # 列出容器
    docker ps
    # 启动容器
    docker start <container>
    # 停止容器
    docker stop <container>
    # 删除指定镜像 使用 -f 参数可以强制删除
    docker rmi <image_name>
    # 删除指定容器 需要先停止容器
    docker rm <container>
    
  • 启动容器

    docker run -itd --restart always -p <host_port>:<container_port> <image> <cmd>
    
    • -d:以后台模式运行容器(即“守护进程”模式)。
    • -it:启动交互式容器并分配一个伪终端,通常用于调试和开发。
    • –name :指定容器的名称。
    • -p ::映射主机和容器的端口。
    • -v ::挂载主机上的文件夹到容器中。
    • –rm:容器停止后自动删除。
    • –env =:设置环境变量。
    • –network :指定容器运行的网络。
    • –restart 重启策略:
      • no:默认值。容器不会自动重启。
      • always:无论容器因何原因停止,它都会自动重启。这对于需要确保容器长期运行的服务非常有用。
      • unless-stopped:类似于 always,但如果容器是由用户手动停止的,它不会重新启动。适用于需要持久化服务但允许用户手动停止的场景。
      • on-failure:当容器因为非零退出码停止时,它会重新启动。适用于容器可能因错误而停止的场景。可以通过添加一个整数参数来指定尝试重启的最大次数,比如 on-failure:3 表示容器最多尝试重启 3 次。
  • 查看日志

    docker logs <container>
    
    • -f:跟踪实时日志输出。
    • –tail :显示最后的 n 行日志。
  • Docker exec

    docker exec 命令用于在正在运行的容器内执行命令。

    docker exec -it <container> <cmd>
    
    • -it:以交互方式运行命令,通常用于连接容器的终端。
    • –user :以指定用户的身份运行命令。
  • 创建自定义网络

    docker network create -d macvlan --subnet=192.168.2.0/24  --gateway=192.168.2.1 -o macvlan_mode=bridge -o parent=enp0s31f6 mynet
    
    • docker network create:
      这是创建 Docker 网络的命令。
    • -d macvlan:
      指定网络驱动为 macvlan。macvlan 驱动允许容器拥有独立的 MAC 地址,使其看起来像是主机上的一个独立网络接口。在这种模式下,容器可以直接与外部网络进行通信。
    • –subnet=192.168.2.0/24:
      定义网络的子网范围。这表示所有 IP 地址在 192.168.2.0/24 的范围内,子网掩码为 255.255.255.0。这意味着此网络中可用的 IP 地址从 192.168.2.1 到 192.168.2.254。
    • –gateway=192.168.2.1:
      指定该网络的网关地址。在这个例子中,网关地址是 192.168.2.1。通常,网关用于将网络内的流量路由到外部网络。
    • -o macvlan_mode=bridge:
      macvlan 驱动支持几种不同的模式。bridge 模式是最常用的一种,允许容器与外部网络通信,并通过网关与其他网络通信。这与传统的桥接模式不同,macvlan bridge 模式直接连接到物理网络。
    • -o parent=enp0s31f6:
      指定 macvlan 网络的父接口。这里的 enp0s31f6 是主机上的物理网络接口。macvlan 网络将在该接口上创建虚拟网络,使容器能够通过这个接口与外部网络通信。
    • mynet:
      这是创建的网络名称。在使用 Docker 时,你可以使用这个名称来引用新创建的网络。

    除了macvlan外,还有bridge、overlay等类型。

    • bridge
      • 概述:这是 Docker 的默认网络类型。每个容器都有一个独立的虚拟网络接口,并通过一个虚拟交换机连接到 bridge 网络。容器间可以通过内部 IP 地址进行通信。
      • 使用场景:适用于希望在单个主机上的容器之间进行通信,同时保持与外部网络的隔离。可以通过端口映射将外部请求路由到容器。
    • overlay
      • 概述:用于 Docker Swarm 或 Kubernetes 等分布式环境。在多个 Docker 主机之间创建虚拟网络,允许容器跨主机通信。使用 VXLAN 等技术实现。
      • 使用场景:适用于分布式应用程序,需要容器在多个 Docker 主机间通信。常用于多容器应用程序和微服务架构。
  • 构建镜像

    # 在当前目录中构建 Docker 镜像,标签为 "my_image:latest"
    docker build -t my_image:latest .
    
    # 使用特定 Dockerfile 构建,标签为 "my_image:v1"
    docker build -f /path/to/Dockerfile -t my_image:v1 .
    
    # 构建时不使用缓存
    docker build --no-cache -t my_image:no_cache .
    
    # 构建时传递环境变量
    docker build --build-arg MY_VAR=value -t my_image:with_arg .
    
    • -t:指定构建镜像的标签和名称。
    • -f:指定 Dockerfile 的路径。默认为当前目录下的 Dockerfile。
    • –no-cache:构建时不使用缓存。这对于确保每次都从头开始构建很有用。
    • –build-arg:传递构建时的参数(如环境变量)。
    • –target:指定构建的阶段(用于多阶段构建)。
    • –network:指定构建期间使用的网络模式。
  • 推送镜像到dockerhub

    docker push my_dockerhub_username/my_image:latest
    
  • docker-compose

    # 启动
    docker-compose up
    # 停止
    docker-compose down
    # 查看所有容器的日志
    docker-compose logs
    # 列出所有相关容器
    docker-compose ps
    

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 1430797759@qq.com

文章标题:Docker使用说明

字数:2.1k

本文作者:花落阁

发布时间:2023-04-29, 10:16:08

最后更新:2024-04-29, 11:33:49

原始链接:https://hualog.dns.navy/2023/04/29/Docker%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。