Docker常用命令

一、概念

1.什么是docker

Docker 是一个开源的应用容器化平台,用 OS 级轻量虚拟化技术,把应用 + 依赖 + 配置打包成可移植容器,实现 "一次构建,到处运行",解决环境不一致、部署慢、资源浪费等问题。

2.Docker用在什么地方

    • 开发环境:统一 "开发 - 本地" 环境,避免 "我这能跑"

开发阶段最常见的问题是 "本地代码能跑,同事电脑 / 测试环境跑不通",根源是依赖(如 Python 版本、数据库版本、系统库)不一致;

    • 测试环境:快速搭建 / 销毁测试环境,提升测试效率

测试阶段需要频繁切换 "不同版本的软件""不同依赖组合"(如测试兼容性、回归测试),传统方式搭建环境耗时且易出错;

    • 生产环境:简化部署流程,实现 "一次打包,到处运行"

生产环境的核心需求是 "稳定、高效、可重复部署",传统部署(如手动复制文件、配置环境变量)易出错且难以追溯;

    • 微服务架构:支撑微服务的 "独立部署、弹性伸缩"

微服务架构将一个大型应用拆分为多个独立的小服务(如用户服务、订单服务、支付服务),每个服务需要独立部署、扩容,Docker 是微服务的 "最佳载体";

    • 运维与自动化:简化 "环境管理",适配 CI/CD 流水线

Docker 是持续集成 / 持续部署(CI/CD) 流水线的核心组件,能让 "代码提交→自动测试→自动部署" 的流程更顺畅。

3.为什么要使用Docker

    • 环境一致性:彻底解决 "环境不一致" 问题;
      • 环境搭建 / 销毁:秒级完成,效率拉满;
        • 部署标准化:一次打包,到处运行;
          • 轻量级 + 强隔离:资源省一半,互不干扰;
            • 适配自动化:支撑 CI/CD,实现 "代码提交即部署";
              • 适配微服务:微服务架构的 "最佳载体"

4.如何使用docker

1)docker镜像

查看,下载,生成容器,定制

2)Docker容器

创建,停止,删除,启动

3)Docker仓库:

公有仓库:github,阿里云,清华云

私有仓库:公司内部自己的仓库

二、常用命令

1.使用docker镜像

1)获取镜像

复制代码
docker pull+镜像名称

2)搜寻镜像

①网址查询

https://hub.docker.com/

https://github.com/

②命令查询
复制代码
docker search + 镜像名称

3)查看镜像信息

复制代码
docker image

4)添加镜像标签,变为特定的标签

复制代码
docker tag 原始镜像名:版本号 自定义的镜像名称:自定义的新标签(可以是版本、环境、备注等)
eg. docker tag ubuntu:18.04 myubuntu:5b 

5)查看镜像详细信息

复制代码
Docker inspect 镜像ID/名称

6)删除和清理镜像

①删除镜像(强制删除指定的镜像)
复制代码
docker rmi -f +镜像id/名称
②清理镜像(批量清理无用的镜像)
复制代码
docker image prune 

7)上传镜像到仓库

复制代码
docker save -o 输出文件路径/文件名.tar 镜像名:标签
复制代码
docker load -i 镜像归档文件.tar

2.操作docker容器

1)查看正在运行的容器

复制代码
docker ps  
复制代码
docker ps -a 查看包括没有运行的所有容器

2)创建并启动容器

复制代码
docker run -itd 镜像ID/名称 bash

3)创建容器(不会被启动)

复制代码
Docker create -it 镜像ID/名字

4)启动容器

复制代码
docker start(restart重启/pause 挂起) 容器ID/名字

5)进入容器

①常规进入
复制代码
docker exec -it 容器ID bash(环境)

②单次运行,退出后容器会被关闭

复制代码
docker attach 容器ID

6)删除容器

复制代码
docker rm -f 容器ID/名字

7)停止容器

复制代码
docker stop 容器ID/名字

8)导入和导出容器

①导出
复制代码
 docker export -o /保存位置/文件名 容器名
②导入
复制代码
docker import 保存位置/要导入的文件名称 要设置的名字
eg. docker import /docker_ps/httpd_5b.tar httpd_5b

9)查看容器

复制代码
docker inspect 容器ID/名字

10)其他

①复制文件
复制代码
docker cp 本地位置 容器ID:/容器位置
②查看文件变更
复制代码
docker diff 容器ID/名称                列出一个容器的文件系统中被修改、添加或删除的文件和目录
③端口映射
复制代码
docker port 容器ID/名称                            列出一个运行中的容器的端口映射详情
④更新配置(开机自启动)
复制代码
docker update --restart always 容器ID

11)构建镜像的三种方法

复制代码
docker commit 容器ID/名称 新镜像名称

①基于已有的容器创建

②基于本地模版创建

③基于dockerfile创建

3.搭建docker仓库

集中存放镜像的地方,分为公有和私有

  • docker hub:公共镜像市场,官方提供 https://hub.docker.com 需要翻墙使用
  • 第三方镜像市场:阿里云,网易云,腾讯云
  • 本地私有仓库

1)下载私库镜像

复制代码
docker pull registry

2)创建私有仓库容器并运行

复制代码
docker run -d -p 5000:5000 -v /opt/data/registry:/var/lib/registry registry:latest
docker run                                 docker核心命令,用于创建并启动一个新的 Docker 容器
-d                                         后台运行
-p 5000:5000                               端口映射       宿主机端口:容器内端口
-v /opt/data/registry:/var/lib/registry    数据卷挂载     宿主机目录:容器内目录

3)添加镜像标签

复制代码
docker tag nginx:1.28 localhost:5000/nginx
docker tag  # Docker 核心命令:用于给镜像打标签(创建别名)
nginx:1.28  # 源镜像(被打标签的镜像):格式为 镜像名:版本号
localhost:5000/nginx  # 目标标签(新别名):格式为 仓库地址/镜像名

4)上传

复制代码
docker push localhost:5000/nginx:latest

5)测试是否能下载

①删除原有镜像
复制代码
docker rmi -f localhost:5000/nginx:latest
②从私库下载
复制代码
docker pull localhost:5000/nginx:latest

6)设置私库开机自启动

①查看私库容器ID
复制代码
docker ps
②设置开机自启动
复制代码
docker update --restart=always +容器ID
相关推荐
楼田莉子15 分钟前
Linux学习:线程的同步与互斥
linux·运维·c++·学习
小草儿79932 分钟前
PG18备份恢复
linux·运维·服务器
Mikowoo00737 分钟前
KaLi系统基本使用
运维·服务器
Starry_hello world2 小时前
Linux http代码
linux·运维·http
wuxi_joe3 小时前
中国装备制造企业如何出海:以“配置管理”为核心构建全球竞争力
运维·人工智能·制造
开开心心_Every4 小时前
全屏程序切换工具,激活选中窗口快速切换
linux·运维·服务器·pdf·ocr·测试用例·模块测试
Elastic 中国社区官方博客4 小时前
在 Kubernetes 上的依赖管理
大数据·elasticsearch·搜索引擎·云原生·容器·kubernetes·全文检索
星星乘坐的船4 小时前
Centos7.9系统下docker安装
运维·docker·容器
dust_and_stars4 小时前
APT vs Snap vs Flatpak 核心对比表
运维·服务器·数据库
未来之窗软件服务4 小时前
AI人工智能(四)本地部署vosk-ASR环境命令—东方仙盟练气期
linux·运维·人工智能·本地模型·仙盟创梦ide·东方仙盟