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生态繁荣发展。

更多推荐