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
相关推荐
Data_Journal3 小时前
Scrapy vs. Crawlee —— 哪个更好?!
运维·人工智能·爬虫·媒体·社媒营销
YMWM_3 小时前
不同局域网下登录ubuntu主机
linux·运维·ubuntu
zmjjdank1ng3 小时前
restart与reload的区别
linux·运维
你才是臭弟弟3 小时前
MinIo开发环境配置方案(Docker版本)
运维·docker·容器
Bruk.Liu3 小时前
Gitea Actions 的概念及基础使用
运维·ci/cd·持续集成
yanlou2333 小时前
[C++/Linux HTTP项目] HTTP服务器基于muduo高性能服务器搭载【深入详解】
运维·服务器·http·muduo库·http高性能服务器
杨江3 小时前
frp macbook 的18789到 公网服务器上,访问报错:disconnected (1008): unauthorized:
运维
天空属于哈夫克34 小时前
企微第三方 RPA API:非官方接口与官方接口的差异解析及选型建议
运维·服务器
niceffking4 小时前
linux 信号内核模型
linux·运维·服务器