发布时间:2025-03-09 人气:83次
基础命令
# 拉取镜像
docker pull nginx:latest
# 运行容器(后台模式)
docker run -d --name my_nginx nginx
# 列出运行中的容器
docker ps
# 停止容器
docker stop my_nginx
# 删除容器
docker rm my_nginx
# 删除镜像
docker rmi nginx:latest
描述:
• docker pull 用于从仓库拉取镜像。
• docker run 启动容器,-d 表示后台运行,--name 指定容器名称。
• docker ps 查看正在运行的容器,-a 可显示所有容器。
• docker stop/rm/rmi 分别用于停止容器、删除容器和删除镜像。
容器管理
# 进入运行中的容器
docker exec -it my_nginx /bin/bash
# 查看容器日志
docker logs my_nginx
# 映射端口和挂载目录
docker run -d -p 8080:80 -v /host/path:/container/path --name web_server nginx
# 复制文件到容器
docker cp local_file.txt my_nginx:/container/path/
描述:
• docker exec -it 进入容器交互式终端。
• -p 8080:80 将宿主机 8080 端口映射到容器的 80 端口。
• -v 挂载宿主机目录到容器内。
• docker cp 在宿主机和容器之间复制文件。
镜像管理
# 构建镜像(需 Dockerfile)
docker build -t my_custom_image:1.0 .
# 导出镜像为文件
docker save my_custom_image:1.0 > my_image.tar
# 从文件导入镜像
docker load < my_image.tar
# 推送镜像到仓库
docker tag my_custom_image:1.0 username/repo:tag
docker push username/repo:tag
描述:
• docker build 根据当前目录的 Dockerfile 构建镜像。
• docker save/load 用于镜像的导出和导入。
• docker tag/push 标记镜像并推送到远程仓库(如 Docker Hub)。
网络管理
# 创建自定义网络
docker network create my_network
# 运行容器并指定网络
docker run -d --name redis --network my_network redis
# 查看网络详情
docker network inspect my_network
描述:
• docker network create 创建自定义网络以实现容器间通信。
• --network 指定容器加入的网络。
• docker network inspect 查看网络配置和连接的容器。
数据卷管理
# 创建数据卷
docker volume create my_volume
# 使用数据卷启动容器
docker run -d -v my_volume:/data --name db_container mysql
# 清理未使用的数据卷
docker volume prune
描述:
• docker volume create 创建持久化数据卷。
• -v my_volume:/data 将数据卷挂载到容器的 /data 目录。
• docker volume prune 清理未被容器引用的数据卷。
Docker Compose
# docker-compose.yml
version: '3'
services:
web:
image: nginx
ports:
- "8080:80"
db:
image: mysql
environment:
MYSQL_ROOT_PASSWORD: example
volumes:
- db_data:/var/lib/mysql
volumes:
db_data:
# 启动服务
docker-compose up -d
# 停止并删除服务
docker-compose down
描述:
• docker-compose.yml 定义多容器服务及其依赖关系。
• docker-compose up 启动服务,-d 表示后台运行。
• docker-compose down 停止并清理资源。
Dockerfile 示例
# 基础镜像
FROM node:18
# 设置工作目录
WORKDIR /app
# 复制文件并安装依赖
COPY package*.json ./
RUN npm install
# 复制源代码
COPY . .
# 暴露端口
EXPOSE 3000
# 启动命令
CMD ["npm", "start"]
描述:
• FROM 指定基础镜像。
• WORKDIR 设置容器内的工作目录。
• COPY 和 RUN 用于复制文件和执行命令。
• EXPOSE 声明容器监听的端口。
• CMD 定义容器启动时的默认命令。