当前位置: 首页 > news >正文

docker基础与常用命令

目录

一.docker概述

1.docker与虚拟机区别

2.Linux 六大命名空间

3.Docker 的核心技术及概念

二.docker部署安装

三.docker常用命令

1.搜索镜像

2.获取镜像

3.查看镜像信息

4.添加镜像标签

5.删除镜像

6.存出与载入镜像

7.上传镜像

8.创建容器

9.查看容器状态

10.容器的启动、关闭与重启

11.创建并启动容器

12.进入容器

13.文件复制

14.容器导出与导入

15.删除容器


一.docker概述

1.docker与虚拟机区别

特性Docker 容器虚拟机
启动速度秒级分钟级
计算能力损耗几乎无损耗 50%左右
性能接近原生弱于
系统支持量(单机)上千个几十个
隔离性资源隔离/限制完全隔离

容器化的优势

  • 灵活:即使是最复杂的应用也可以集装箱化。

  • 轻量级:容器利用并共享主机内核。

  • 可互换:可以即时部署更新和升级。

  • 便携式:可以在本地构建,部署到云,并在任何地方运行。

  • 可扩展:可以增加并自动分发容器副本。

  • 可堆叠:可以垂直和即时堆叠服务。

2.Linux 六大命名空间

命名空间缩写作用效果
MNT挂载文件系统隔离每个命名空间可以有自己的文件系统挂载点
NET网络网络资源隔离每个命名空间可以有自己的网络栈,包括网络接口、路由表等
PID进程进程号隔离每个命名空间有自己独立的 PID 编号空间
IPC间通进程间通信隔离每个命名空间有自己独立的 System V IPC 和 POSIX 消息队列
UTS主机主机名、域名隔离每个命名空间可以有自己的主机名和域名
USER用户用户名、组名隔离每个命名空间可以有自己的用户和组 ID 映射

3.Docker 的核心技术及概念

Docker 容器本质上是宿主机的一个进程,通过以下技术实现资源隔离和限制:

  • Namespace:实现资源隔离。

  • Cgroup:实现资源限制。

  • 写时复制技术(Copy-on-Write):实现高效的文件操作。

docker核心概念:镜像、容器、镜像仓库

二.docker部署安装

1.关闭防火墙

systemctl stop firewalld.service
setenforce 0

2.安装依赖包

yum install -y yum-utils device-mapper-persistent-data lvm2

3.设置阿里源

yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

4.安装docker-ce并设置开机自启动

yum install -y docker-ce docker-ce-cli containerd.io
systemctl start docker.service
systemctl enable docker.service

三.docker常用命令

1.搜索镜像

docker search 关键字

2.获取镜像

docker pull 仓库名称[:标签]

3.查看镜像信息

docker images

docker inspect 镜像ID号(查看镜像详细信息)

4.添加镜像标签

docker tag 名称:[标签] 新名称:[新标签]

如:docker tag nginx:latest nginx:web

5.删除镜像

  • docker rmi 仓库名称:标签:删除指定标签的镜像

  • docker rmi 镜像ID号:彻底删除镜像

如:docker rmi nginx:web

6.存出与载入镜像

存出镜像:

docker save -o 存储文件名 存储的镜像

如:docker save -o nginx nginx:latest

载入镜像:

docker load < 存出的文件 或docker load -i 存出的文件

如:docker load < nginx

7.上传镜像

docker push 用户名/镜像名称:新标签

8.创建容器

  • 格式docker create [选项] 镜像

  • 常用选项

    • -i:开启标准输入接受用户输入命令。

    • -t:分配一个伪终端 tty。

    • -it:合起来实现和容器交互的作用,运行一个交互式会话 shell。

如:docker create -it nginx:latest /bin/bash

9.查看容器状态

docker ps -a

10.容器的启动、关闭与重启

docker start/stop/restart 容器ID

11.创建并启动容器

docker run [选项] 镜像 [命令]

docker run -itd image_name:tag [/bin/bash.....] 下载并将镜像运行为容器(-i 让容器可以接受宿主机的指令、-t 为容器分配一个伪终端,让用户可以"登录"进容器,-d 分配一个守护进程,这样可以让容器运行时不占用前台终端)

12.进入容器

  • docker exec -it 容器ID/名称 /bin/bash

如:docker exec -it 2592d3fad0fb /bin/bash

13.文件复制

  • 复制到容器

    echo abc123 > ~/test.txt
    docker cp ~/test.txt 2592d3fad0fb:/opt/
  • 从容器复制到主机

    docker cp 2592d3fad0fb:/opt/test.txt ~/abc123.txt

14.容器导出与导入

导出:
  docker export 2592d3fad0fb > centos7.tar

 导入:
  cat centos7.tar | docker import - centos7:test
 

15.删除容器

docker rm [-f] 容器ID/名称

  • 删除已终止容器

    docker stop 2592d3fad0fb
    docker rm 2592d3fad0fb
  • 强制删除运行容器

    docker rm -f 2592d3fad0fb

http://www.lryc.cn/news/586161.html

相关文章:

  • Linux之Zabbix分布式监控篇(一)
  • Elasticsearch 的 `modules` 目录
  • Git常用命令一览
  • 中德英法西五语氛围刷题第一集:HTML命名空间CSS处理
  • Python问题记录`No module named ‘matplotlib‘` 问题解决方案
  • 苍穹外卖项目日记(day05)
  • UI前端大数据可视化实战策略分享:如何设计符合用户认知的数据可视化流程?
  • 以数据为核心,以业务为导向,漫谈数据可视化应用
  • 上门服务APP开发源码商业模式设计与功能架构解析
  • QCustomPlot绘制交互图
  • Django母婴商城项目实践(四)
  • JavaSE 01 类和对象|继承多态
  • Java_Springboot技术框架讲解部分(一)
  • 【C/C++】迈出编译第一步——预处理
  • HCL模拟器的正确开启(Win11不兼容HCL)
  • CVPR2025 Mamba系列
  • 【读书笔记】《C++ Software Design》第二章:The Art of Building Abstractions
  • 使用python 实现一个http server
  • Elasticsearch 线程池
  • MIG_IP核的时钟系统
  • 使用 Java 开发大数据应用:Hadoop 与 Java API 的结合
  • Linux中使用快捷方式加速SSH访问
  • 让 VSCode 调试器像 PyCharm 一样显示 Tensor Shape、变量形状、变量长度、维度信息
  • 细解muduo中的每个核心类
  • pytorch深度学习—RNN-循环神经网络
  • 关于wpf的自适应
  • vue2和vue3的响应式原理
  • Java中的内存溢出详解
  • 【Python练习】039. 编写一个函数,反转一个单链表
  • Linux系统使用Verdaccio搭建Npm私服