Docker容器是什么?
Docker容器是一种轻量级、可移植的软件打包和运行环境,它允许开发者将应用及其依赖以独立的单元进行分发和部署。每个容器都运行在一个隔离的环境中,具有自己的文件系统、网络空间和资源限制。容器与宿主机共享内核,但通过Linux命名空间(namespaces)和控制组(cgroups)技术实现了进程、网络、文件系统等层面的隔离,使得多个容器可以在同一台物理机或虚拟机上高效并行运行。
Docker容器的特点:
Docker容器的使用场景:
# 更新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
# 拉取一个镜像,例如官方的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的Remote Development扩展功能,具体步骤如下:
ms-vscode-remote.vscode-remote-extensionpack
,该扩展包含用于远程开发的支持。-v /path/to/local/code:/workspace
),并且开启持久化TTY以便于交互式登录(如 -it
)。请注意,实际操作过程中可能需要根据不同的开发需求调整容器配置以及VSCode Remote-Containers扩展的设置。
在PyCharm中远程连接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.1:配置远程解释器
打开PyCharm,在菜单栏选择 File
> Settings
(Windows/Linux) 或 PyCharm
> Preferences
(macOS)。
在设置窗口中找到 Project: Your_Project_Name
> Project Interpreter
。
点击齿轮图标然后选择 Add
> Add Remote...
选择 SSH Interpreter
并点击下一步。
填写远程服务器的 SSH 配置信息:
在下一个界面,选择 “Use Docker Compose” 或 “Use Dockerfile” 来指定容器,或者直接选择 “Existing interpreter” 并填入容器内的Python解释器路径(如 /usr/bin/python3
)。
如果是通过现有的解释器连接,可能还需要映射容器内部的项目路径到宿主机(即你的本地开发环境)。
步骤2.2:配置部署(可选)
如果你需要将本地项目的更改同步到容器内,可以配置Deployment。
Build, Execution, Deployment
> Deployment
,点击"+"添加一个新的SFTP或FTPS部署配置。完成上述配置后,你可以尝试测试连接是否成功。若能正常连接到远程解释器并在PyCharm中运行、调试容器内的代码,则表示配置成功。
以下是一些Docker容器常用的命令示例及其详细说明:
查看本地镜像:
docker images
该命令用于显示当前主机上所有的Docker镜像列表,包括镜像ID、标签和大小等信息。
拉取镜像:
docker pull ubuntu:latest
此命令从Docker Hub或其他配置的镜像仓库下载指定标签(这里是latest)的Ubuntu镜像。
创建并运行容器:
docker run -it --name my_container ubuntu:latest /bin/bash
这条命令将创建一个新的容器,并命名为my_container
,使用的是最新版的Ubuntu镜像。-it
参数表示以交互模式运行(分配一个终端),并在容器内启动/bin/bash
shell。
列出正在运行的容器:
docker ps
列出所有正在运行的容器的基本信息。
列出所有容器(包括停止状态的) :
docker ps -a
进入已运行的容器:
docker exec -it my_container bash
这个命令允许你在一个已经运行的名为my_container
的容器中打开一个新的shell会话。
停止容器:
docker stop my_container
停止指定名称或ID的容器。
重启容器:
docker restart my_container
删除容器:
docker rm my_container
删除已停止的容器,若要强制删除正在运行的容器,可以加上 -f
参数:
docker rm -f my_container
查看容器日志:
docker logs my_container
显示指定容器的日志输出。
提交容器为新镜像:
docker commit my_container new_image_name
将当前修改后的容器保存为新的镜像。
更新容器资源限制:
docker update --cpu-shares 512 my_container
更新容器的CPU份额等资源限制。
以上是Docker容器操作中常见的命令,实际使用时可能需要根据具体需求调整参数和选项。