docker怎么用
Docker是一个开源的应用容器引擎,允许开发者打包应用及其依赖包到一个可移植的容器中。以下是Docker的基本使用方法:
安装Docker - Windows/macOS: 下载Docker Desktop安装包并运行安装程序 - Linux: 使用包管理器安装
`
bashsudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io
`
验证安装
`
bash docker --version docker run hello-world`
基本命令 - 拉取镜像:
`
bash docker pull [镜像名]:[标签]- 运行容器:
bash docker run -it [镜像名] /bin/bash`
常用参数: --d
: 后台运行 --p
: 端口映射(主机端口:容器端口) --v
: 卷挂载(主机目录:容器目录)容器管理 - 查看运行中的容器:
`
bash docker ps- 查看所有容器:
bash docker ps -a- 停止容器:
bash docker stop [容器ID]- 删除容器:
bash docker rm [容器ID]`
镜像管理 - 列出镜像:
`
bash docker images- 删除镜像:
bash docker rmi [镜像ID]`
构建自定义镜像 创建Dockerfile:
`
dockerfile FROM ubuntu:20.04 RUN apt-get update && apt-get install -y python3 CMD ["python3", "--version"]构建镜像:
bash docker build -t my-python-image .`
数据持久化 - 使用数据卷:
`
bash docker volume create my-vol docker run -v my-vol:/data [镜像名]- 绑定挂载:
bash docker run -v /host/path:/container/path [镜像名]`
网络配置 - 创建网络:
`
bash docker network create my-net- 连接容器到网络:
bash docker run --network=my-net [镜像名]`
日志查看
`
bash docker logs [容器ID]`
常用组合命令 - 清理所有停止的容器:
`
bash docker container prune- 清理未使用的镜像:
bash docker image prune -a`
实际使用时,可以根据具体需求组合这些命令。对于生产环境,建议使用docker-compose来管理多容器应用。
docker怎么用入门教程?
基础概念
容器:轻量级的虚拟化技术,打包应用及其运行环境 镜像:容器的模板,包含完整的文件系统和运行配置 Dockerfile:用于构建镜像的脚本文件
安装Docker
Windows/Mac用户: - 下载Docker Desktop安装包 - 双击安装并启动Docker服务
Linux用户(Ubuntu示例):
`
bash sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io sudo systemctl start docker sudo systemctl enable docker`
基础命令操作
查看Docker版本:
`
bash docker --version`
运行第一个容器:
`
bash docker run hello-world`
查看运行中的容器:
`
bash docker ps`
查看所有容器(包括停止的):
`
bash docker ps -a`
停止容器:
`
bash docker stop <容器ID>`
删除容器:
`
bash docker rm <容器ID>`
镜像管理
拉取镜像:
`
bash docker pull ubuntu:20.04`
查看本地镜像:
`
bash docker images`
删除镜像:
`
bash docker rmi <镜像ID>`
实际应用示例
运行Nginx容器:
`
bash docker run -d -p 8080:80 --name mynginx nginx`
访问 http://localhost:8080进入容器内部:
`
bash docker exec -it mynginx /bin/bash`
查看容器日志:
`
bash docker logs mynginx`
Dockerfile基础
创建简单Dockerfile:
`
dockerfile FROM ubuntu:20.04 RUN apt-get update && apt-get install -y curl CMD ["curl", "https://www.example.com"]`
构建镜像:
`
bash docker build -t my-curl .`
运行自定义镜像:
`
bash docker run my-curl`
数据持久化
使用数据卷:
`
bash docker run -v /host/path:/container/path ubuntu`
创建命名卷:
`
bash docker volume create my-vol docker run -v my-vol:/container/path ubuntu`
网络配置
创建自定义网络:
`
bash docker network create my-net`
使用自定义网络运行容器:
`
bash docker run --network=my-net ubuntu`
实用技巧
清理无用资源:
`
bash docker system prune`
查看容器资源使用:
`
bash docker stats`
保存镜像为文件:
`
bash docker save -o myimage.tar my-image`
从文件加载镜像:
`
bash docker load -i myimage.tar`
docker怎么用安装步骤?
Docker安装步骤(以Ubuntu系统为例):
卸载旧版本(如有)
`
bash sudo apt-get remove docker docker-engine docker.io containerd runc`
安装依赖包
`
bash sudo apt-get update sudo apt-get install \ ca-certificates \ curl \ gnupg \ lsb-release`
添加Docker官方GPG密钥
`
bash sudo mkdir -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg`
设置稳定版仓库
`
bash echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null`
安装Docker引擎
`
bash sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin`
验证安装
`
bash sudo docker run hello-world`
配置非root用户使用docker(可选)
`
bash sudo groupadd docker sudo usermod -aG docker $USER newgrp docker`
Windows系统安装建议: 1. 下载Docker Desktop安装包 2. 运行安装程序并启用WSL2后端 3. 安装完成后重启电脑
Mac系统安装建议: 1. 下载Docker.dmg文件 2. 拖拽应用到Applications文件夹 3. 首次运行时需完成初始化配置
安装完成后建议执行:
`
bash
docker version # 查看版本信息
docker info # 查看系统信息
`
docker怎么用常见问题解答?
安装问题
Q: Docker安装后无法启动
- 检查系统是否满足最低要求(64位系统,特定内核版本)
- 查看日志获取具体错误信息:journalctl -u docker.service
- 确保没有其他容器服务冲突
Q: Windows/Mac安装后无法识别docker命令 - 确认Docker Desktop已完全启动(系统托盘图标显示运行中) - 检查PATH环境变量是否包含Docker路径 - 尝试重启终端或计算机
镜像操作
Q: 如何拉取特定版本的镜像?
`
bash
docker pull image_name:tag
docker pull nginx:1.21.6
`
Q: 本地镜像列表显示异常
- 清理无效镜像:docker image prune
- 强制刷新:docker system prune -a
(谨慎使用)
容器管理
Q: 容器启动后立即退出
- 检查容器日志:docker logs container_id
- 尝试交互模式运行:docker run -it image_name
- 确保有前台进程运行(如web服务器)
Q: 如何查看运行中的容器?
`
bash
docker ps
docker ps -a
`
网络配置
Q: 容器无法访问外部网络
- 检查DNS配置:docker run --dns 8.8.8.8
- 验证网络驱动:docker network inspect bridge
- 检查防火墙设置
Q: 如何暴露容器端口?
`
bash
docker run -p 主机端口:容器端口 image_name
docker run -p 8080:80 nginx
`
数据持久化
Q: 容器删除后数据丢失
- 使用数据卷:docker volume create volume_name
- 绑定主机目录:docker run -v /host/path:/container/path
Q: 如何备份容器数据?
`
bash
docker run --volumes-from container_name -v $(pwd):/backup busybox tar cvf /backup/backup.tar /container_data_path
`
性能问题
Q: Docker占用过多磁盘空间
- 清理无用对象:docker system prune
- 检查大体积镜像:docker system df
- 限制日志大小:在daemon.json中配置log-opts
Q: 容器内存占用过高
- 设置内存限制:docker run -m 512m
- 使用内存监控工具:docker stats
- 优化应用内存配置
安全相关
Q: 如何避免以root运行容器?
`
bash
docker run -u 1000:1000 image_name
USER 1000
`
Q: 镜像安全扫描
- 使用内置扫描:docker scan image_name
- 定期更新基础镜像
- 检查依赖项的CVE漏洞
排错技巧
Q: 如何进入运行中的容器?
`
bash
docker exec -it container_id /bin/bash
docker exec -it container_id sh
`
Q: 如何查看容器详细配置?
`
bash
docker inspect container_id
docker inspect -f '{{.NetworkSettings.IPAddress}}' container_id
`
进阶问题
Q: 多阶段构建失败 - 确保每个阶段有明确的FROM指令 - 验证COPY路径正确性 - 使用--target参数调试特定阶段
Q: Docker Compose服务依赖问题 - 使用depends_on控制启动顺序 - 添加健康检查条件 - 考虑使用wait-for脚本处理TCP依赖