怎么运行docker容器

发布时间:2021-12-13 11:24:02 作者:iii
来源:亿速云 阅读:176
# 怎么运行Docker容器

## 前言

Docker作为当前最流行的容器化技术,已成为开发者和运维人员的必备技能。本文将详细介绍从零开始运行Docker容器的完整流程,涵盖基础概念、环境准备、常用命令和实际应用场景。

## 一、Docker基础概念

### 1.1 什么是容器
容器是轻量级的虚拟化技术,将应用及其依赖打包成标准化单元,具有以下特点:
- 共享主机操作系统内核
- 启动速度快(秒级)
- 资源占用少
- 环境一致性保证

### 1.2 Docker核心组件
| 组件          | 说明                                                                 |
|---------------|----------------------------------------------------------------------|
| Docker镜像    | 只读模板,包含运行应用所需的所有文件和配置                          |
| Docker容器    | 镜像的运行实例,具有可写层                                          |
| Docker仓库    | 存储和分发镜像的仓库(如Docker Hub)                                |
| Docker引擎    | 包含守护进程、REST API和CLI工具的核心组件                           |

## 二、环境准备

### 2.1 安装Docker
#### Linux系统(以Ubuntu为例)
```bash
# 卸载旧版本
sudo apt-get remove docker docker-engine docker.io containerd runc

# 安装依赖
sudo apt-get update
sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common

# 添加官方GPG密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

# 添加仓库
sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"

# 安装Docker引擎
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io

# 验证安装
sudo docker run hello-world

Windows/macOS

  1. 下载Docker Desktop安装包
  2. 双击运行安装向导
  3. 安装完成后启动应用

2.2 配置用户权限(Linux)

# 将当前用户加入docker组
sudo usermod -aG docker $USER

# 重新登录使配置生效
newgrp docker

三、运行第一个容器

3.1 拉取镜像

docker pull nginx:latest

3.2 运行容器

docker run -d -p 8080:80 --name my-nginx nginx

参数说明: - -d: 后台运行 - -p 8080:80: 端口映射(主机端口:容器端口) - --name: 指定容器名称

3.3 验证运行

curl http://localhost:8080
# 或在浏览器访问localhost:8080

四、容器管理命令

4.1 基础操作

命令 作用
docker ps 查看运行中的容器
docker ps -a 查看所有容器(包括已停止的)
docker stop <容器ID/名称> 停止容器
docker start <容器ID/名称> 启动已停止的容器
docker restart <容器ID/名称> 重启容器
docker rm <容器ID/名称> 删除容器

4.2 高级操作

# 查看容器日志
docker logs -f my-nginx

# 进入容器终端
docker exec -it my-nginx bash

# 查看容器资源使用
docker stats my-nginx

# 复制文件到容器
docker cp local_file.txt my-nginx:/path/in/container

五、实际应用场景

5.1 运行MySQL数据库

docker run -d \
  --name mysql-server \
  -e MYSQL_ROOT_PASSWORD=my-secret-pw \
  -p 3306:3306 \
  -v /path/to/data:/var/lib/mysql \
  mysql:5.7

5.2 部署Web应用

# 构建自定义镜像
docker build -t my-webapp .

# 运行应用
docker run -d \
  -p 5000:5000 \
  --link mysql-server:db \
  my-webapp

5.3 使用Docker Compose

创建docker-compose.yml文件:

version: '3'
services:
  web:
    build: .
    ports:
      - "5000:5000"
    depends_on:
      - redis
  redis:
    image: "redis:alpine"

启动服务:

docker-compose up -d

六、常见问题排查

6.1 端口冲突

错误现象:

Error response from daemon: Port is already allocated

解决方案:

# 查找占用端口的进程
sudo lsof -i :8080

# 或者更改容器映射端口
docker run -p 8081:80 ...

6.2 磁盘空间不足

清理无用资源:

# 删除所有停止的容器
docker container prune

# 删除未被使用的镜像
docker image prune -a

6.3 容器启动失败

查看详细日志:

docker logs <容器ID>

七、最佳实践建议

  1. 镜像管理

    • 优先使用官方镜像
    • 定期更新基础镜像
    • 使用特定版本标签而非latest
  2. 容器运行

    • 每个容器只运行一个进程
    • 使用--restart策略处理异常退出
    • 合理配置资源限制(CPU/内存)
  3. 数据持久化

    • 重要数据必须使用Volume或bind mount
    • 避免在容器内存储数据
  4. 安全建议

    • 不以root用户运行容器
    • 定期扫描镜像漏洞
    • 限制容器网络访问权限

结语

通过本文的学习,您应该已经掌握了Docker容器的基本运行方法。建议通过实际项目练习来巩固知识,后续可以进一步学习: - Docker网络配置 - 集群管理和Swarm/Kubernetes - 持续集成/持续部署(CI/CD)集成

提示:所有命令中的容器ID可以只输入前4个能唯一标识的字符

”`

本文共计约2300字,涵盖了从基础概念到实际操作的完整流程,采用Markdown格式编写,包含代码块、表格等元素便于阅读和理解。

推荐阅读:
  1. docker学习-docker容器运行
  2. 如何docker容器运行web应用?

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

docker

上一篇:PostgreSQL 逻辑复制学习中的深入与疑问

下一篇:企业该如何搭建大数据分析平台

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》