【Linux】Docker入门指南(一):镜像拉取及容器运行
·
Docker入门指南(一):镜像拉取及容器运行
1.核心概念
Docker 作为主流的容器化技术,其核心优势在于解决传统软件开发、测试、部署过程中的 “环境不一致”“资源冗余”“部署复杂” 等痛点。
- 镜像:
镜像是一个只读的模板,包含了运行应用所需的所有内容:代码、运行时、库文件、环境变量和配置文件。类似于“软件安装包” - 容器:
容器是镜像的运行实例,是一个轻量级、可移植的执行环境。镜像运行起来之后,变成一个“活的程序环境”,这就是容器。
2.镜像拉取及运行
2.1 联网(远程下载)
从远程仓库拉取镜像文件并运行,这种方式容易因网络问题下载超时。
#docker pull [name] #从远程仓库(如 Docker Hub、GitHub Container Registry)下载镜像,name为仓库地址
docker pull igorafsouza/marqo:v1.0.0
#docker run ... #运行docker
docker run --platform linux/amd64 -p 8888:8888 -v /home/yourname/data:/mnt/data marqo-v1.0.0
2.2 离线(本地文件加载)
通过其他方式获取到镜像文件(一般为.tar.gz格式),在本地解压并加载到Docker中,而后运行。
gunzip marqo-v1.0.0.tar.gz #解压镜像文件
#docker load -i #加载镜像文件到Docker
docker load -i marqo-v1.0.0.tar
#docker run ... #运行docker
docker run --platform linux/amd64 -p 8888:8888 -v /home/yourname/data:/mnt/data marqo-v1.0.0
可以用以下命令查看存储在本地的镜像:
docker images
2.3 命令解析
挂载 (Volume, -v)
- 容器是一个“独立小世界”,它自己有文件系统,但你需要和外部电脑交换数据。比如你的图片在
/home/yourname/data,你希望容器能看到 → 所以用-v /home/yourname/data:/mnt/data,意思是:把本地/home/yourname/data目录映射到容器里的/mnt/data。
端口映射 (-p)
- 容器里运行了 Jupyter Notebook,它默认监听容器的 8888端口。但为了用浏览器访问,所以需要把容器的端口映射到电脑本机 →
-p 8888:8888。意思是:本机访问http://localhost:8888,就等于访问容器里的 Jupyter Notebook。
3.国内镜像源设置
远程下载镜像过程中容易由于网络问题下载超时,可以尝试配置国内镜像源解决,方法如下:
step1.编辑配置文件(添加国内镜像源):
sudo mkdir -p /etc/docker
sudo nano /etc/docker/daemon.json
step2:写入以下内容:
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://mirror.iscas.ac.cn",
"https://docker.mirrors.sjtug.sjtu.edu.cn"
]
}
step3:重新加载配置:
sudo systemctl daemon-reexec
step4:重启 Docker:
sudo systemctl restart docker
step5:再试拉取远程仓库镜像文件:
docker pull igorafsouza/marqo:v1.0.0
4.常用的Docker客户端命令
| 命令 | 功能 | 示例 |
|---|---|---|
docker run |
启动一个新的容器并运行命令 | docker run -d ubuntu |
docker ps |
列出当前正在运行的容器 | docker ps |
docker ps -a |
列出所有容器(包括已停止的容器) | docker ps -a |
docker build |
使用 Dockerfile 构建镜像 | docker build -t my-image . |
docker images |
列出本地存储的所有镜像 | docker images |
docker pull |
从 Docker 仓库拉取镜像 | docker pull ubuntu |
docker push |
将镜像推送到 Docker 仓库 | docker push my-image |
docker exec |
在运行的容器中执行命令 | docker exec -it container_name bash |
docker stop |
停止一个或多个容器 | docker stop container_name |
docker start |
启动已停止的容器 | docker start container_name |
docker restart |
重启一个容器 | docker restart container_name |
docker rm |
删除一个或多个容器 | docker rm container_name |
docker rmi |
删除一个或多个镜像 | docker rmi my-image |
docker logs |
查看容器的日志 | docker logs container_name |
docker inspect |
获取容器或镜像的详细信息 | docker inspect container_name |
docker exec -it |
进入容器的交互式终端 | docker exec -it container_name /bin/bash |
docker network ls |
列出所有 Docker 网络 | docker network ls |
docker volume ls |
列出所有 Docker 卷 | docker volume ls |
docker-compose up |
启动多容器应用(从 docker-compose.yml 文件) |
docker-compose up |
docker-compose down |
停止并删除由 docker-compose 启动的容器、网络等 |
docker-compose down |
docker info |
显示 Docker 系统的详细信息 | docker info |
docker version |
显示 Docker 客户端和守护进程的版本信息 | docker version |
docker stats |
显示容器的实时资源使用情况 | docker stats |
docker login |
登录 Docker 仓库 | docker login |
docker logout |
登出 Docker 仓库 | docker logout |
常用选项说明:
-d:后台运行容器,例如docker run -d ubuntu。-it:以交互式终端运行容器,例如docker exec -it container_name bash。-t:为镜像指定标签,例如docker build -t my-image .。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)