【Docker】Docker的搭建及常用命令
Docker 是一个用于开发、部署和运行应用程序的开源平台,它通过容器化技术将应用程序及其依赖项打包在一起,确保在不同环境中运行的一致性。以下是 Docker 的常用命令及使用说明:
1. Docker 基本概念
镜像(Image):一个只读模板,包含运行应用程序所需的代码、库和依赖项。
容器(Container):镜像的运行实例,是一个独立的、轻量级的执行环境。
仓库(Repository):用于存储和分发镜像的地方,如 Docker Hub。
2. Docker 安装
Linux:
sudo apt-get update sudo apt-get install docker.io
Windows/macOS:下载 Docker Desktop 并安装。
安装完成后,运行以下命令检查是否安装成功:
docker --version
3. Docker 常用命令
镜像相关命令
拉取镜像:
docker pull <镜像名称>:<标签>
示例:
docker pull ubuntu:20.04
查看本地镜像:
docker images
删除镜像:
docker rmi <镜像ID或名称>
示例:
docker rmi ubuntu:20.04
构建镜像:
docker build -t <镜像名称>:<标签> <Dockerfile路径>
示例:
docker build -t myapp:1.0 .
容器相关命令
运行容器:
docker run [选项] <镜像名称>:<标签>
示例:
docker run -it ubuntu:20.04 /bin/bash
常用选项:
-d
:后台运行容器。-it
:以交互模式运行容器。-p
:映射端口(主机端口:容器端口)。--name
:为容器指定名称。
查看运行中的容器:
docker ps
查看所有容器(包括已停止的):
docker ps -a
启动/停止/重启容器:
docker start <容器ID或名称> docker stop <容器ID或名称> docker restart <容器ID或名称>
进入运行中的容器:
docker exec -it <容器ID或名称> /bin/bash
删除容器:
docker rm <容器ID或名称>
查看容器日志:
docker logs <容器ID或名称>
网络相关命令
查看网络列表:
docker network ls
创建网络:
docker network create <网络名称>
将容器连接到网络:
docker network connect <网络名称> <容器ID或名称>
断开容器与网络的连接:
docker network disconnect <网络名称> <容器ID或名称>
数据卷相关命令
创建数据卷:
docker volume create <卷名称>
查看数据卷:
docker volume ls
删除数据卷:
docker volume rm <卷名称>
挂载数据卷到容器:
docker run -v <卷名称>:<容器内路径> <镜像名称>
Docker Compose 相关命令
Docker Compose 用于管理多容器应用。
启动服务:
docker-compose up
后台启动服务:
docker-compose up -d
停止服务:
docker-compose down
查看服务状态:
docker-compose ps
4. Docker 使用示例
示例 1:运行一个 Nginx 容器
# 拉取 Nginx 镜像
docker pull nginx
# 运行 Nginx 容器,并将主机的 8080 端口映射到容器的 80 端口
docker run -d -p 8080:80 --name my-nginx nginx
# 访问 http://localhost:8080 查看 Nginx 默认页面
示例 2:构建自定义镜像
创建一个
Dockerfile
:FROM ubuntu:20.04 RUN apt-get update && apt-get install -y python3 CMD ["python3", "--version"]
构建镜像并运行:
docker build -t my-python-app . docker run my-python-app
5. Docker 常用配置
Docker 配置文件路径:
Linux:
/etc/docker/daemon.json
Windows/macOS: Docker Desktop 设置中配置。
修改镜像加速器(国内用户建议配置):
在daemon.json
中添加:{ "registry-mirrors": [ "https://registry.docker-cn.com", "https://docker.mirrors.ustc.edu.cn" ] }
6. Docker 资源清理
删除所有未使用的镜像、容器、网络和数据卷:
docker system prune -a
删除所有停止的容器:
docker container prune
删除所有未使用的镜像:
docker image prune -a
7. Docker 学习资源
Docker Hub:https://hub.docker.com/
Docker Compose 文档:https://docs.docker.com/compose/