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 .

Docker 容器使用 | 菜鸟教程

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐