• 【 Docker 容器详细介绍和说明】


    Docker 容器详细介绍和说明

    Docker容器是什么?
    Docker容器是一种轻量级、可移植的软件打包和运行环境,它允许开发者将应用及其依赖以独立的单元进行分发和部署。每个容器都运行在一个隔离的环境中,具有自己的文件系统、网络空间和资源限制。容器与宿主机共享内核,但通过Linux命名空间(namespaces)和控制组(cgroups)技术实现了进程、网络、文件系统等层面的隔离,使得多个容器可以在同一台物理机或虚拟机上高效并行运行。

    Docker容器的特点:

    1. 标准化: 保证应用在开发、测试、生产环境的一致性。
    2. 便携性: 可以在任何安装了Docker引擎的机器上运行。
    3. 资源隔离: 确保容器内的应用程序不会影响到其他容器或宿主机。
    4. 微服务架构友好: 适合构建基于微服务的应用程序,每个服务可以封装在一个单独的容器中。
    5. 快速启动: 相对于传统虚拟机,容器启动速度快,资源消耗更少。

    Docker容器的使用场景:

    • 微服务架构中的服务部署
    • CI/CD流程中的持续集成与交付
    • 应用程序生命周期管理
    • 面向开发者的本地开发环境设置
    • 云原生应用的构建与发布

    Docker 安装步骤(以Ubuntu为例):

    # 更新apt包索引
    sudo apt-get update
    
    # 安装必要的一些系统工具
    sudo apt-get install -y \
        apt-transport-https \
        ca-certificates \
        curl \
        gnupg-agent \
        software-properties-common
    
    # 添加Docker的官方GPG密钥
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
    
    # 添加Docker的APT仓库
    sudo add-apt-repository \
       "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
       $(lsb_release -cs) \
       stable"
    
    # 更新apt包索引,并安装Docker Engine
    sudo apt-get update
    sudo apt-get install -y docker-ce docker-ce-cli containerd.io
    
    # 启动Docker服务并设置开机自启
    sudo systemctl start docker
    sudo systemctl enable docker
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27

    使用Docker创建并运行容器:

    # 拉取一个镜像,例如官方的nginx镜像
    docker pull nginx
    
    # 创建并运行一个新容器
    docker run --name my_nginx -d -p 8080:80 nginx
    
    # 上述命令含义:
    # --name 给容器命名
    # -d 表示后台运行
    # -p 将主机端口映射到容器端口
    
    # 测试访问容器
    curl http://localhost:8080
    
    # 查看正在运行的容器
    docker ps
    
    # 停止并移除容器
    docker stop my_nginx
    docker rm my_nginx
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    VSCode远程连接Docker容器:

    为了能在VSCode中远程连接并编辑运行在Docker容器内部的应用代码,你可以使用VSCode的Remote Development扩展功能,具体步骤如下:

    1. 在VSCode中安装插件 ms-vscode-remote.vscode-remote-extensionpack,该扩展包含用于远程开发的支持。
    2. 运行你的Docker容器时,确保挂载本地目录到容器内作为工作区(如 -v /path/to/local/code:/workspace),并且开启持久化TTY以便于交互式登录(如 -it)。
    3. 在VSCode的命令面板(Ctrl+Shift+P)中选择“Remote-Containers: Attach to Running Container”,然后从列表中选择你已运行的Docker容器。
    4. VSCode会自动加载容器内部的工作区,你现在可以直接在VSCode中编辑并运行容器内的项目代码。

    请注意,实际操作过程中可能需要根据不同的开发需求调整容器配置以及VSCode Remote-Containers扩展的设置。

    在PyCharm中远程连接Docker容器进行开发和调试,需要按照以下步骤操作:

    步骤1:配置Docker环境

    确保远程服务器上已经正确安装并运行了Docker,并且创建了一个带有SSH服务的Docker容器。同时,容器内已安装Python解释器以及必要的库。

    # 在远程服务器上创建并启动一个带有SSH服务的Docker容器
    sudo docker run -d --name my_container \
        -p 2222:22 \  # 映射容器内部的22端口到主机的一个非默认端口(例如2222)
        -v /path/to/project:/app \  # 如果要编辑容器内的代码,挂载本地项目目录到容器内
        -e USER=root \  # 设置用户
        -e PASSWD=my_password \  # 设置密码,或者使用密钥登录
        image_name:tag
    
    # 进入容器,设置root用户的密码或公钥认证(如果尚未完成)
    docker exec -it my_container bash
    passwd root  # 更改密码
    # 或者添加公钥到authorized_keys文件以启用无密码登录
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    步骤2:配置PyCharm

    步骤2.1:配置远程解释器

    1. 打开PyCharm,在菜单栏选择 File > Settings (Windows/Linux) 或 PyCharm > Preferences (macOS)。

    2. 在设置窗口中找到 Project: Your_Project_Name > Project Interpreter

    3. 点击齿轮图标然后选择 Add > Add Remote...

    4. 选择 SSH Interpreter 并点击下一步。

    5. 填写远程服务器的 SSH 配置信息:

      • 主机名:远程服务器IP地址或域名
      • 用户名:远程服务器的用户名
      • 端口号:SSH端口,如果是上面映射的非默认端口,则填写2222
      • Authentication type:根据实际情况选择密码或密钥验证
    6. 在下一个界面,选择 “Use Docker Compose” 或 “Use Dockerfile” 来指定容器,或者直接选择 “Existing interpreter” 并填入容器内的Python解释器路径(如 /usr/bin/python3)。

    7. 如果是通过现有的解释器连接,可能还需要映射容器内部的项目路径到宿主机(即你的本地开发环境)。

    步骤2.2:配置部署(可选)

    如果你需要将本地项目的更改同步到容器内,可以配置Deployment。

    1. 在设置窗口,转到 Build, Execution, Deployment > Deployment,点击"+"添加一个新的SFTP或FTPS部署配置。
    2. 填写远程主机的相同SSH连接信息,并指定本地与远程路径的映射关系。

    步骤3:测试连接

    完成上述配置后,你可以尝试测试连接是否成功。若能正常连接到远程解释器并在PyCharm中运行、调试容器内的代码,则表示配置成功。

    docker 容器常用命令

    以下是一些Docker容器常用的命令示例及其详细说明:

    1. 查看本地镜像

      docker images
      
      • 1

      该命令用于显示当前主机上所有的Docker镜像列表,包括镜像ID、标签和大小等信息。

    2. 拉取镜像

      docker pull ubuntu:latest
      
      • 1

      此命令从Docker Hub或其他配置的镜像仓库下载指定标签(这里是latest)的Ubuntu镜像。

    3. 创建并运行容器

      docker run -it --name my_container ubuntu:latest /bin/bash
      
      • 1

      这条命令将创建一个新的容器,并命名为my_container,使用的是最新版的Ubuntu镜像。-it参数表示以交互模式运行(分配一个终端),并在容器内启动/bin/bash shell。

    4. 列出正在运行的容器

      docker ps
      
      • 1

      列出所有正在运行的容器的基本信息。

    5. 列出所有容器(包括停止状态的)

      docker ps -a
      
      • 1
    6. 进入已运行的容器

      docker exec -it my_container bash
      
      • 1

      这个命令允许你在一个已经运行的名为my_container的容器中打开一个新的shell会话。

    7. 停止容器

      docker stop my_container
      
      • 1

      停止指定名称或ID的容器。

    8. 重启容器

      docker restart my_container
      
      • 1
    9. 删除容器

      docker rm my_container
      
      • 1

      删除已停止的容器,若要强制删除正在运行的容器,可以加上 -f 参数:

      docker rm -f my_container
      
      • 1
    10. 查看容器日志

      docker logs my_container
      
      • 1

      显示指定容器的日志输出。

    11. 提交容器为新镜像

      docker commit my_container new_image_name
      
      • 1

      将当前修改后的容器保存为新的镜像。

    12. 更新容器资源限制

      docker update --cpu-shares 512 my_container
      
      • 1

      更新容器的CPU份额等资源限制。

    以上是Docker容器操作中常见的命令,实际使用时可能需要根据具体需求调整参数和选项。

  • 相关阅读:
    Leetcode DAY14: 递归遍历 and 迭代遍历 and 统一迭代
    Maven 自动化构建
    ROS定时器回调
    KMP算法真的有这么难吗?(清晰详细版)
    COI实验室技能——自动切换显示器画面以及实现采集大量实验数据的方法(采集数据可供深度学习训练)
    前端Vue 结合xlxs库实现解析excel文件,并动态组装表头!
    容器化技术最佳实践1--容器化技术简介与Docker入门
    window环境下mysql忘记密码或者原正确密码无法登录
    C语言——结构体详解
    mysql57开启biglog并查看biglog保姆级教程
  • 原文地址:https://blog.csdn.net/zhiqingAI/article/details/136461256