【 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

使用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

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文件以启用无密码登录

步骤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
    

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

  2. 拉取镜像

    docker pull ubuntu:latest
    

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

  3. 创建并运行容器

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

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

  4. 列出正在运行的容器

    docker ps
    

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

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

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

    docker exec -it my_container bash
    

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

  7. 停止容器

    docker stop my_container
    

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

  8. 重启容器

    docker restart my_container
    
  9. 删除容器

    docker rm my_container
    

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

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

    docker logs my_container
    

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

  11. 提交容器为新镜像

    docker commit my_container new_image_name
    

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

  12. 更新容器资源限制

    docker update --cpu-shares 512 my_container
    

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

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

  • 16
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

stsdddd

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值