插件窝 干货文章 怎么运行docker镜像

怎么运行docker镜像

Docker 容器 bash 运行 850    来源:    2025-04-06

运行 Docker 镜像的步骤如下,我会分不同场景详细说明:


1. 基础运行命令

docker run [OPTIONS] IMAGE_NAME[:TAG]
  • 示例:运行最新版 Nginx bash docker run -d -p 80:80 --name my_nginx nginx:latest
    • -d:后台运行(detached mode)
    • -p 80:80:将主机80端口映射到容器80端口
    • --name:为容器指定名称

2. 常见场景

2.1 运行交互式容器(如Ubuntu)

docker run -it ubuntu:20.04 /bin/bash
  • -it:分配交互式终端(-i 交互式,-t 伪终端)
  • 退出容器后会自动停止(用 Ctrl+P + Ctrl/Q 可后台保持运行)

2.2 挂载主机目录

docker run -v /host/path:/container/path nginx
  • 将主机目录 /host/path 挂载到容器内 /container/path

2.3 设置环境变量

docker run -e "MY_ENV=value" my_image

2.4 使用自定义网络

docker network create my_net
docker run --network=my_net my_image

3. 管理容器

  • 查看运行中的容器bash docker ps
  • 查看所有容器(包括已停止的)bash docker ps -a
  • 停止/启动容器bash docker stop my_nginx docker start my_nginx
  • 进入运行中的容器bash docker exec -it my_nginx /bin/bash

4. 其他实用参数

参数 作用
--rm 容器退出后自动删除
-m 512m 限制内存为512MB
--cpus 1.5 限制CPU使用为1.5核
--restart=always 容器崩溃时自动重启

5. 完整示例

docker run -d \
  --name my_web \
  -p 8080:80 \
  -v /data/html:/usr/share/nginx/html \
  -e "TZ=Asia/Shanghai" \
  --restart unless-stopped \
  nginx:alpine

常见问题

  1. 端口冲突
    如果主机端口已被占用,修改 -p 参数(如 -p 8080:80)。

  2. 镜像不存在
    先执行 docker pull image_name 下载镜像。

  3. 权限问题
    在 Linux 上,命令前加 sudo将用户加入docker组

  4. 数据持久化
    务必通过 -v 挂载重要数据目录,避免容器删除后数据丢失。


通过以上步骤,你可以灵活运行和管理 Docker 镜像。如果有特殊需求(如 GPU 支持),可以补充具体场景。