Docker-基本命令

news2024/11/18 5:34:11

目录

一、Docker与虚拟机技术

二、Docker功能

三、安装

安装:

1、环境准备:

2、安装docker

3、配置阿里云镜像加速

4、Docker是怎么工作的

5、Docker为什么比虚拟机快

四、docker命令

1、镜像命令    Docker官方镜像库:https://hub.docker.com/

2、容器命令

3、日志打印

4、查看进程信息

5、查看容器信息

6、文件copy

7、端口暴漏

8、查看cpu状态

9、portainer可视化面板

五、Docker镜像

1、Docker加载原理

2、分层原理

六、Commit镜像


一、Docker与虚拟机技术

传统虚拟机,虚拟一条硬件,运行一个完整的操作系统,然后在系统上安装和运行软件

容器内应用直接运行在宿主机的内核上,容器没有自己的内核,也没有虚拟硬件

每个容器之间,互相隔离,拥有自己单独的文件系统,互补影响。

二、Docker功能

1、简化程序

2、节省开支

3、便于迁移

4、简化运维与开发

三、安装

1、镜像(image):好比一个模板,用来创建容器服务,如tomcat镜像文件  =>  run  =>  tomcat容器,可以通过一个镜像创建多个容器(好比一个类可以创建多个对象,可以为对象提供各种方法服务)

2、容器(container):独立运行一个或一组应用,通过镜像创建(互相隔离,比如对象对象之间互相隔离)

3、仓库(repository):存放镜像的地方,分为公有仓库和私有仓库

安装:

1、环境准备:

#linux服务器,版本3.10.0以上
#查看linux版本命令:
uname -r

2、安装docker

#卸载旧版本
sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
#需要的安装包
sudo yum install -y yum-utils
#设置镜像仓库
 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#安装docker相关的
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
#启动docker
systemctl start docker
#查看docker是否启动成功
docker version
#测试hello world
docker run hello-world
#查看镜像
docker images
#卸载docker
sudo yum remove docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
rm -rf /var/lib/docker    #docker默认工作路径

3、配置阿里云镜像加速

镜像加速器镜像加速器地址
Docker 中国官方镜像https://registry.docker-cn.com
DaoCloud 镜像站http://f1361db2.m.daocloud.io
Azure 中国镜像https://dockerhub.azk8s.cn
科大镜像站https://docker.mirrors.ustc.edu.cn
阿里云https://ud6340vz.mirror.aliyuncs.com
七牛云https://reg-mirror.qiniu.com
网易云https://hub-mirror.c.163.com
腾讯云https://mirror.ccs.tencentyun.com
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
    "registry-mirrors": ["https://registry.docker-cn.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

4、Docker是怎么工作的

Docker 是一个 CS架构,Docker 的守护进程运行在主机上,通过TCP协议从客户端访问,Docker server接收到Docker-Client的指令,就会执行这个命令;

5、Docker为什么比虚拟机快

Docker的容器是一个阉割版的Linux服务器,

Docker具有比虚拟机更少的抽象层

Docker利用的是宿主机的内存,VM需要利用Guest OS的内存

四、docker命令


docker ps 查看当前运行中的容器
docker images 查看镜像列表
docker rm container-id 删除指定 id 的容器
docker stop/start container-id 停止/启动指定 id 的容器
docker rmi image-id 删除指定 id 的镜像
docker volume ls 查看 volume 列表
docker network ls 查看网络列表
docker info   系统信息,包括镜像和容器的数量
docker version  系统版本

docker --help  帮助

1、镜像命令    Docker官方镜像库:https://hub.docker.com/

docker images   查看镜像
              -a  查看所有镜像
              -q  查看所有镜像ID
docker pull[:tag]     下载镜像,可选版本
                      docker 采用分层下载,同个镜像不同版本,在不同层次上依赖的数据相同
                      docker可以将不同版本依赖的相同项共用,只下载不同项文件。
docker rmi -f ID/Name  依据ID或者name删除iamge
docker rmi -f ${docker images -a -q}  删除所有的镜像
docker rmi -f id1 id2 id3   删除多个image

2、容器命令

                   下载镜像
docker pull tomcat
                    运行容器
docker run [可选参数] image            创建运行容器
            -d                         后台运行,守护进程
            --name                     给容器起名字
            -P 8081:8080               端口映射
            -p                         随机指定端口 
            -it                        使用交互式方式运行,进入容器查看内容
                  进入与退出容器
docker run -it -p 8088:8080 -d tomcat  运行容器
docker exec -it 容器i bash
docker attach 容器ID                   进入容器
  区别:
       exec   进入容器开启一个新的终端
       attach 进入容器,不会开启新线程

                                       可以进入查看一些容器的目录
exit                                   退出容器并停止
ctrl + p + q                           退出容器不停止容器
                    查看容器
docker ps                               查看正在运行容器
docker ps -a                            查看所有运行的容器
docker ps -n=1                          只显示一个容器
          -q                            显示容器的ID
docker rm ID                            删除容器,只能删除停止的容器
docker rm -f ${docker ps -aq}           删除所有容器
       rm  id1 id2 id3                  删除所有容器
                     停止容器
docker start id                         启动容器
docker restart id                       重启容器
docker stop    id                       停止容器
docker kill    id                       停止容器

容器内的内容阉割了一些功能和文件,所以有部分命令是无法使用的

3、日志打印

docker logs -tf --tail 10 ID   打印容器日志,后面10行

4、查看进程信息

docker top ID

5、查看容器信息

docker inspect ID

6、文件copy

docker cp  id:文件path 目的path    从容器内copy到容器外

7、端口暴漏

需要大同外网到云服务器之间的通路,还需打通linux 与 容器之间的通路,使用 -p 8080:8080即可打通。

8、查看cpu状态

docker stats  查看cpu状态

9、portainer可视化面板

docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer

五、Docker镜像

镜像为轻量级的软件包,用户打包软件运行环境

获取镜像:远程仓库下载,复制粘贴,自己定制Dockerfile

1、Docker加载原理

联合文件系统:一种分层、轻量级并且高性能的文件系统,及与其他镜像共享部分依赖的文件,如:A,B镜像共享C,先安装了A的同时,C也安装,那么在安装B时,就无需在安装C。

bootfs:系统启动需要引导加载的文件

rootfs:在bootfs之上的,不同操作系统

所有的rootfs依赖于bootfs

2、分层原理

高层复用底层文件

六、Commit镜像

修改镜像

docker commit -m="描述信息" -a="作者" 容器id 目标镜像名:[tag]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1516779.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

深入理解与应用Keepalive机制

目录 引言 一、VRRP协议 &#xff08;一&#xff09;VRRP概述 1.诞生背景 2.基本理论 &#xff08;二&#xff09;VRRP工作原理 &#xff08;三&#xff09;VRRP相关术语 二、keepalive基本理论 &#xff08;一&#xff09;基本性能 &#xff08;二&#xff09;实现原…

Hadoop伪分布式配置--没有DataNode或NameNode

一、原因分析 重复格式化NameNode 二、解决方法 1、输入格式化NameNode命令&#xff0c;找到data和name存放位置 ./bin/hdfs namenode -format 2、删除data或name&#xff08;没有哪个删哪个&#xff09; sudo rm -rf data 3、重新格式化NameNode 4、重新启动即可。

Seata 2.x 系列【7】服务端集成 Nacos 2.x

有道无术&#xff0c;术尚可求&#xff0c;有术无道&#xff0c;止于术。 本系列Seata 版本 2.0.0 本系列Spring Boot 版本 3.2.0 本系列Spring Cloud 版本 2023.0.0 源码地址&#xff1a;https://gitee.com/pearl-organization/study-seata-demo 文章目录 1. 概述2. 安装 N…

Cassandra 集群安装部署

文章目录 一、概述1.官方文档2. 克隆服务器3.安装说明4.安装准备4.1.安装 JDK 114.2.安装 Python4.3.下载文件 二、安装部署1.配置 Cassandra2.启动 Cassandra3.关闭Cassandra4.查看状态5.客户端连接服务器6.服务运行脚本 开源中间件 # Cassandrahttps://iothub.org.cn/docs/m…

校园新闻网站|基于SpringBoot+ Mysql+Java+B/S结构的校园新闻网站设计与实现(可运行源码+数据库+设计文档+部署说明)

推荐阅读100套最新项目 最新ssmjava项目文档视频演示可运行源码分享 最新jspjava项目文档视频演示可运行源码分享 最新Spring Boot项目文档视频演示可运行源码分享 目录 前台功能效果图 管理员功能登录前台功能效果图 系统功能设计 数据库E-R图设计 lunwen参考 摘要 研究…

运放的基础知识

运算放大器&#xff08;Operational Amplifier&#xff0c;简称运放&#xff09;是一种直流耦合、差模&#xff08;差动模式&#xff09;输入的高增益电压放大器&#xff0c;通常具有单端输出。它能产生一个相对于输入端电势差大数十万倍的输出电势&#xff08;对地而言&#x…

爬虫的去重

去重基本原理 爬虫中什么业务需要使用去重 防止发出重复的请求防止存储重复的数据 在爬取网页数据时&#xff0c;避免对同一URL发起重复的请求&#xff0c;这样可以减少不必要的网络流量和服务器压力&#xff0c;提高爬虫的效率&#xff0c;在将爬取到的数据存储到数据库或其…

ConnectionResetError: [WinError 10054] 远程主机强迫关闭了一个现有的连接。

发生的错误信息&#xff1a; File "C:\Users\malongqiang\.conda\envs\ObjectDetection\lib\ssl.py", line 1309, in do_handshakeself._sslobj.do_handshake() ConnectionResetError: [WinError 10054] 远程主机强迫关闭了一个现有的连接。 分析原因&#xff1a; …

网络编程:网络编程基础

一、网络发展 1.TCP/IP两个协议阶段 TCP/IP协议已分成了两个不同的协议&#xff1a; 用来检测网络传输中差错的传输控制协议TCP 专门负责对不同网络进行2互联的互联网协议IP 2.网络体系结构 OSI体系口诀&#xff1a;物链网输会示用 2.1网络体系结构概念 每一层都有自己独…

新生宿舍管理系统|基于springboot框架+ Mysql+Java+B/S架构的新生宿舍管理系统设计与实现(可运行源码+数据库+设计文档+部署说明)

推荐阅读100套最新项目 最新ssmjava项目文档视频演示可运行源码分享 最新jspjava项目文档视频演示可运行源码分享 最新Spring Boot项目文档视频演示可运行源码分享 目录 学生功能模块 管理员功能 系统功能设计 数据库E-R图设计 lunwen参考 摘要 研究目的 开发环境 项目部…

全栈的自我修养 ———— js中的复制api

通常用于可以禁止用户复制或者在复制的内容后面添加版权信息等 一、代码二、展示1、访问粘贴板的内容2、替换复制内容3、在复制内容的后面添加版权信息4、监听粘贴事件 一、代码 <body><div class"demo">不可以被复制</div><div class"de…

Linux中mysql的安装、远程访问、基础操作、文件导入

Linux中mysql的安装、远程访问、基础操作、文件导入 cheet card1. 安装1. 使用root账号安装mysql 2. 启动mysql并创建root、管理员两个账号3. 基础操作3.1 数据库的查看、创建、修改、删除3.2 mysql的数据类型3.3 数据表的基本操作3.4 数据表结构的修改3.5 表中数据的增、删、改…

【C++ 学习】程序内存分布

文章目录 1. C 内存分布的引入 1. C 内存分布的引入 ① 栈又叫堆栈&#xff1a;非静态局部变量/函数参数/返回值等等&#xff0c;栈是向下增长的。 ② 内存映射段&#xff1a;是高效的I/O映射方式&#xff0c;用于装载一个共享的动态内存库。用户可使用系统接口创建共享共享内存…

射影几何 -- 两视点几何 1

1、 基本矩阵 1.1、 极几何 极平面 (Epipolar Plane) 通过两个摄像机光心的平面称为极平面。两个摄像机光心的连线称为基线&#xff0c;任意两张极平面均 相交于基线&#xff0c;所以极平面的全体构成共基线的平面束。 极线 (Epipolar Line) 极平面与摄像机像平面的交线称…

ELK之使用Filebeat插件收集日志到Logstash

对于Springboot项目接入ELK非常方便&#xff0c;对于非maven&#xff0c;非Spring项目来说就比较复杂&#xff0c;这个时候我们就可以使用Filebeat插件还完成日志的收集发送工作。 Filebeat介绍 Filebeat是用于转发和收集数据的轻量级工具&#xff0c;Filebeat可以监视指定的…

3.1_8 两级页表

文章目录 3.1_8 两级页表&#xff08;一&#xff09;单级页表存在的问题&#xff08;二&#xff09;如何解决单级页表的问题&#xff1f;&#xff08;三&#xff09;两级页表的原理、地址结构&#xff08;四&#xff09;如何实现地址变换&#xff08;五&#xff09;需要注意的几…

【Cookie和Session辨析】

1.cookie 1.1什么是cookie Cookie 是一种在客户端&#xff08;通常是 Web 浏览器&#xff09;和服务器之间传递信息的机制&#xff0c;用于在客户端存储少量的数据。它由服务器发送到客户端浏览器&#xff0c;然后浏览器会将这些数据存储在本地&#xff0c;并在后续的请求中将…

全球首个 AI 软件工程师 Devin它来了!

如果您想每日获取AI最新新闻,欢迎关注文章底部的公众号 Cognition AI 发布 AI 软件工程师 Devin 初创公司 Cognition 近日发布公告,宣布推出全球首个 AI 软件工程师 Devin,并号称会彻底改变人类构建软件的方式。Devin 擅长长期推理能力,可以自主规划和完成软件项目,并在此…

Kotlin:为什么创建类不能被继承

一、为什么创建类不能被继承 class或data class 默认情况下&#xff0c;Kotlin 类是最终&#xff08;final&#xff09;的&#xff1a;它们不能被继承。 示例&#xff1a;data class PsersonBean 反编译data class PsersonBean 生成 public final class PsersonBean 示例&…

智慧路灯杆AI监测应用,让高速出行更安全

高速公路是现代交通出行的重要组成&#xff0c;高速公路上的交通安全也一直是人们关注的焦点。针对更好监测和管理高速公路上的交通状况&#xff0c;可以基于智慧路灯杆打造AI交通监测应用&#xff0c;通过智能感知高速路段的路况、车况、环境状况&#xff0c;实现实时风险感知…