Docker基础

发布于:2025-09-08 ⋅ 阅读:(14) ⋅ 点赞:(0)

Docker基础

以下是一份 ​Docker 基础使用教程,涵盖从安装到核心操作的完整流程,附详细命令和示例:

🐳 ​一、Docker 安装​
​1. Linux 系统(Ubuntu)​​

卸载旧版本

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

添加Docker官方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
​2. Windows/Mac​

  • 下载 Docker Desktop:https://www.docker.com/products/docker-desktop
  • 安装后启动,终端输入 docker version验证

⚙️ ​二、核心概念​
概念​​说明​​类比现实​​镜像(Image)​​只读模板(包含应用+环境)软件安装光盘​容器(Container)​​镜像的运行实例(轻量沙箱)运行中的程序​仓库(Registry)​​存储镜像的服务器(如Docker Hub)应用商店


🚀 ​三、基础操作命令​
​1. 镜像管理​

拉取镜像(默认latest标签)

docker pull nginx:1.25

查看本地镜像

docker images

删除镜像

docker rmi nginx:1.25

导出镜像

docker save -o nginx.tar nginx:1.25

导入镜像

docker load -i nginx.tar
​2. 容器生命周期​

运行容器(前台模式)

docker run -it ubuntu:20.04 /bin/bash

运行容器(后台模式)

docker run -d --name my-nginx nginx:1.25

查看运行中的容器

docker ps

查看所有容器(包括停止的)

docker ps -a

停止容器

docker stop my-nginx

启动已停止的容器

docker start my-nginx

删除容器

docker rm my-nginx

🔄 ​四、高级操作​
​1. 端口映射​

将容器80端口映射到主机8080

docker run -d -p 8080:80 --name web nginx:1.25
浏览器访问 http://localhost:8080
​2. 数据卷挂载​

挂载主机目录到容器

docker run -d -v /host/path:/container/path nginx:1.25

创建命名卷

docker volume create my-vol
docker run -d -v my-vol:/app/data nginx:1.25
​3. 进入容器​

进入运行中的容器

docker exec -it my-nginx /bin/bash

查看容器日志

docker logs -f my-nginx

🏗️ ​五、构建自定义镜像​
​1. Dockerfile 示例​

基于官方Python镜像

FROM python:3.9-slim

设置工作目录

WORKDIR /app

复制当前目录文件到容器

COPY . .

安装依赖

RUN pip install --no-cache-dir -r requirements.txt

暴露端口

EXPOSE 5000

定义环境变量

ENV NAME World

容器启动命令

CMD [“python”, “app.py”]
​2. 构建镜像​
docker build -t my-python-app .
​3. 运行自定义镜像​
docker run -d -p 5000:5000 my-python-app

🌐 ​六、网络管理​
​1. 查看网络​
docker network ls
​2. 创建自定义网络​
docker network create my-net
​3. 容器加入网络​
docker run -d --name web --network my-net nginx:1.25
docker run -it --name client --network my-net alpine ping web

🧩 ​七、Docker Compose 多容器编排​
​1. 安装​

Linux

sudo curl -L “https://github.com/docker/compose/releases/latest/download/docker-compose-(uname−s)−(uname -s)-(unames)(uname -m)” -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
​2. docker-compose.yml 示例​
version: ‘3.8’
services:
web:
image: nginx:1.25
ports:
- “8080:80”
volumes:
- ./html:/usr/share/nginx/html
db:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: example
​3. 常用命令​
docker-compose up -d # 启动服务
docker-compose down # 停止并删除容器
docker-compose ps # 查看服务状态
docker-compose logs # 查看日志

🛠️ ​八、实用技巧​
​1. 清理资源​

删除所有停止的容器

docker container prune

删除未被使用的镜像

docker image prune -a

清理所有未使用资源

docker system prune
​2. 查看容器资源使用​
docker stats
​3. 设置容器资源限制​
docker run -d --memory=“512m” --cpus=“0.5” nginx:1.25

🚨 ​九、常见问题解决​
​1. 端口冲突​

查看端口占用

sudo netstat -tuln | grep 8080

停止占用进程或修改映射端口

docker run -d -p 8081:80 nginx:1.25
​2. 权限问题​

容器内操作文件时添加权限

docker run -d -v /host/path:/container/path:Z nginx:1.25
​3. 容器无法启动​

查看日志定位问题

docker logs my-container

📚 ​十、学习资源​
1.​官方文档​:https://docs.docker.com/
2.​交互式教程​:https://www.docker.com/101-tutorial
3.​镜像仓库​:https://hub.docker.com/

掌握这些基础操作后,您已能高效使用Docker进行应用容器化部署!下一步可深入学习:

  • Docker Swarm集群管理
  • Kubernetes容器编排
  • 持续集成/持续部署(CI/CD)集成

网站公告

今日签到

点亮在社区的每一天
去签到