常用Docker命令

Docker 基础命令

检查 Docker 版本

复制代码
$ docker --version
Docker version 20.10.7, build f0df350

获取 Docker 系统信息

复制代码
$ docker info

获取 Docker 命令帮助

复制代码
$ docker help

Docker 镜像管理

Docker 镜像是一个只读模板,用于创建 Docker 容器。以下是一些管理镜像的常用命令:

拉取镜像

复制代码
$ docker pull ubuntu:latest

列出镜像

复制代码
$ docker images

删除镜像

复制代码
$ docker rmi ubuntu:latest

Docker 容器管理

容器是从镜像创建的可运行实例。以下是一些管理容器的常用命令:

运行容器

复制代码
$ docker run -it ubuntu:latest /bin/bash

列出容器

复制代码
$ docker ps

停止容器

复制代码
$ docker stop container_id

删除容器

复制代码
$ docker rm container_id

Docker 容器操作

操作容器时,除了启动和停止之外,还有许多其他有用的命令:

启动和重启容器

复制代码
$ docker start container_id
$ docker restart container_id

查看容器日志

复制代码
$ docker logs container_id

进入容器

复制代码
$ docker exec -it container_id /bin/bash
$ docker attach container_id

Docker 网络管理

Docker 提供了强大的网络功能,使得容器可以相互通信或与外部网络通信:

列出网络

复制代码
$ docker network ls

创建网络

复制代码
$ docker network create my_network

删除网络

复制代码
$ docker network rm my_network

Docker 卷管理

Docker 卷提供了一种在容器之间共享数据的方式:

创建卷

复制代码
$ docker volume create my_volume

列出卷

复制代码
$ docker volume ls

删除卷

复制代码
$ docker volume rm my_volume

Docker Compose

Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具:

安装 Docker Compose

复制代码
$ sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose

基本命令

启动服务
复制代码
$ docker-compose up
停止服务
复制代码
$ docker-compose down
查看日志
复制代码
$ docker-compose logs

进阶命令和技巧

创建和管理自定义镜像是 Docker 的一项强大功能:

Dockerfile 的使用

复制代码
# 使用官方的 Node.js 镜像作为基础镜像
FROM node:14

# 设置工作目录
WORKDIR /app

# 复制 package.json 和 package-lock.json
COPY package*.json ./

# 安装依赖
RUN npm install

# 复制项目文件
COPY . .

# 暴露端口
EXPOSE 3000

# 启动应用
CMD ["node", "app.js"]

构建自定义镜像

复制代码
$ docker build -t my_app:latest .

多阶段构建

复制代码
# 第一阶段:构建应用
FROM node:14 AS builder
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build

# 第二阶段:部署应用
FROM nginx:alpine
COPY --from=builder /app/build /usr/share/nginx/html

结语

以上常用命令希望对大家有些帮助。

相关推荐
志栋智能5 小时前
运维超自动化的版本控制与回滚机制
运维·自动化
中云DDoS CC防护蔡蔡5 小时前
DDOS和CC攻击谁更可怕
运维·服务器·经验分享·网络安全·ddos
Ruiery5 小时前
Linux 6.6内核内存管理深度解析(十六):mmap — 用户态“申请内存“的真相
linux·运维·服务器
ClickHouseDB5 小时前
ClickHouse Cloud 与 Snowflake 实时性价比对比:CostBench 测试中的 412 倍差距来
运维·数据库·系统架构
欧米欧5 小时前
Linux系统篇(七),环境变量的底层溯源,核心获取机制与安全应用
linux·运维·服务器
Ruiery5 小时前
Linux 6.6内核内存管理深度解析(十八):KASLR 内核地址空间随机化
linux·运维·服务器·安全
todoitbo6 小时前
群晖NAS部署JmalCloud:Docker安装、文件管理、博客与公网访问完整教程
运维·docker·容器
时间售卖铺6 小时前
触发器与函数实战:MySQL高效编程秘诀
运维·数据库·mysql·云原生
前端精髓6 小时前
调用大模型API
运维·服务器·microsoft
跨境小彭7 小时前
Temu 全托管模式下,SKU 利润核算的实践复盘
大数据·运维·人工智能·自动化·temu