Docker常用命令与相关操作(更新中)

news2024/11/14 12:20:13

Docker介绍

1.什么是Docker

Docker是一个开源的应用容器引擎,它是一个是基于Go语言开发的开源项目。使用Docker可以让开发者封装他们的应用以及依赖包到一个可移植的容器中,然后发布到任意的Linux机器上,也可以实现虚拟化。Docker容器完全使用沙箱机制,相互之间不会有任何接口,这保证了容器之间的安全性。

文档地址icon-default.png?t=N7T8https://docs.docker.com/get-docker/        Docker镜像仓库地址icon-default.png?t=N7T8https://hub.docker.com/

2.Docker为什么出现

在我的电脑上能够运行,在别人电脑无法运行;版本更新导致服务不可用。并且环境配置十分麻烦,每一个机器都要部署环境,费时费力。

Docker给以上问题提出了解决方案。Docker的思想来自于集装箱。隔离:Docker核心思想-打包装箱,每个箱子是相互隔离的。

3.Docker与虚拟机的区别

传统虚拟机,虚拟出一套硬件。运行一个完整的操作系统,然后在这个系统上安装和运行程序,这是资源密集型的。由于产生的磁盘镜像和应用程序的操作系统设置相互交叉,所以导致虚拟机对系统的依赖性很强,一旦系统出现问题,虚拟机依赖的文件以及安全补丁等都可能会出现文件丢失的情况。

而Docker容器内的应用直接运行在宿主机的内核中,容器是没有自己的内核的,多个容器可以共享单个内核,并且创建Docker容器的镜像所需要的配置并不依赖于宿主机系统。每个容器间是相互隔离,每个容器内都有一个属于自己的文件系统,互不影响。

4.Docker特点

1.应用更快速的交付和部署

打包镜像发布测试,一键运行

2.更便捷的升级和扩缩容

使用Docker之后,我们部署应用就和搭积木一样,项目打包为一个镜像,水平扩展服务器A -> 服务器B

3.更简单的系统运

在容器化之后,我们的开发,测试环境都是高度一致的

4.更高效的计算资源利用

Docker是内核级别的虚拟化,可以在一个物理机上可以运行很多的容器实例。服务器的性能可以被压榨到极致。

5. Docker镜像加速原理

Docker的镜像实际上由一层一层的文件系统组成,这种层级的文件系统称为UnionFS

UnionFS联合文件系统

Union文件系统是一种分层、轻量级并且高性能的文件系统,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下。

特性:一次同时加载多个文件系统,但从外面看起来,只能看到一个文件系统,联合加载会把各层文件系统叠加起来,这样最终的文件系统会包含所有底层的文件和目录。

Docker命令

1.帮助命令

# 显示docker的版本信息

[root@iZbp19644h35s5z1dntm5eZ ~]# docker version

# 显示docker的系统信息,包括镜像和容器的数量
[root@iZbp19644h35s5z1dntm5eZ ~]# docker info      

       

# 查看所有帮助命令
[root@iZbp19644h35s5z1dntm5eZ ~]# docker --help    

# 查看帮助命令 docker COMMAND --help
[root@iZbp19644h35s5z1dntm5eZ ~]# docker start --help

2.镜像命令

docker images:查看索引本地的主机上的镜像

docker search:搜索镜像

--filter:过滤器

docker search --filter=SRARS=1000 centos:查询收藏数大于1000的centos的镜像

docker pull:拉取镜像

docker pull 镜像名        不加tag(版本号),即拉取docker仓库中该镜像的最新版本latest

docker pull 镜像名:tag    加tag则是拉取指定版本。

docker下载镜像使用分层下载, docker image的核心,联合文件系统。

docker rmi:删除镜像

# 删除指定的镜像

docker rmi -f 镜像id

# 删除多个镜像

docker rmi -f 镜像id 镜像id 镜像id

# 删除全部镜像

docker rmi -f $(docker images -aq)

 3.容器命令

docker run 新建容器并启动

docker ps时,发现容器停止了,因为docker容器使用后台运行,就必须要有一个前台进程,docker发现没有应用,就会自动停止。

mysql、Nginx等会与客户端代连接,所以会有一个前台进程,不会自动退出

docker run [可选参数] image

docker run -d -p 8855:80 --name nginx001 nginx:后台启动nginx,向外映射端口为8855,重命名为nginx001

--name="name"         容器名称:用来区分容器

-d                                后台方式运行:相当于nohup

-it                                使用交互式运行:进入容器查看内容

-p                                指定容器的端口(四种方式)小写字母p 

        -p:ip:主机端口:容器端口

        -p:主机端口:容器端口(常用)

        -p:容器端口

        容器端口

-P                                随机指定端口(大写字母P)

docker ps 列出所有运行的容器

docker ps 

-a                             列出当前正在运行的容器+历史运行过的容器

-n=?                         显示最近创建的容器(可以指定显示几条 -n=1)

-q                             只显示容器的编号          

退出容器

exit                        容器直接停止,并退出

Ctrl +P + Q             容器不停止,退出 

查看镜像的元数据

docker inspect 容器id

进入当前正在运行的容器

通常容器都是使用后台方式运行的,需要进入容器,修改一些配置

#方式一:docker exec -it 容器id /bin/bash

#方式二:docker attach 容器id

两种方式的区别

docker exec          #进入容器后开启一个新的终端,可以在里面操作

docker attach        #进入容器正在执行的终端,不会启动新的进程

其他命令 

docker strart 容器id:启动容器

docker restart 容器id:重启停止的容器

docker ps:列出当前正在运行的容器

docker ps -a:查看索引容器,包括未运行

docker stop 容器id或name:停止容器

docker kill 容器id:强制停止当前容器

docker exec -it 容器id/name /bin/bash:进入容器

exit:退出容器

docker rm 容器id或name:删除已停止的容器

docker rm -f 容器id:删除正在运行的容器

docker exec -it 容器ID sh:进入容器

docker container logs 容器id:查看容器日志

docker top 容器id:查看容器里的进程

4. 文件数据卷

docker是将应用和环境打包成一个镜像。如果数据都在容器中,那么我们将容器删除,数据就会丢失,因此需要数据可以持久化。

容器之间有一个数据共享的技术,Docker容器中产生的数据,同步到本地。这就是卷技术,即目录额挂载,将我们容器内的目录,挂载到Linux主机上面。

1. 使用命令来挂载:-v

安装mysql

docker run -d -p 3306:3306 --name mysql01 -e MYSQL_ROOT_PASSWORD=123456 \
-v /home/mysql/logs:/logs \
-v /home/mysql/conf:/etc/mysql/conf.d \
-v /home/mysql/data:/var/lib/mysql \
mysql:8.0

2.使用Dockerfile实现挂载

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

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

相关文章

机房空调远程控制方案

概述 企业和园区都会有电力机房,往往会配备抽风机或者空调设备。特别在南方,空气湿度大时特别需要这些设备。经常有业主反馈,下班后靠人力到现场控制不太方便,24小时开启又浪费资源,而且可能有长期噪声污染。为此&…

Tomato靶机

修改网络模式为NAT 主机发现 arp-scan -l 端口扫描 nmap 192.168.48.147 nmap -sC -sV -O 192.168.48.147 -sC常见漏洞脚本扫描 -sV开放端口服务/版本号 -O操作系统探测 端口利用 访问web服务 目录扫描 dirb http://192.168.48.147 访问 http://192.168.48.147/antibot_im…

盘点4款令人惊艳的视频剪辑工具

在这个短视频盛行的时代,每个人都可以成为视频内容的创作者。但是,在此之前,拥有一款适合自己的剪辑软件十分重要。今天我就来和大家来说一说我自己觉得比较好用的4款剪辑软件。 1、福昕剪辑神器 直达链接:www.pdf365.cn/foxit-c…

如何将iphone照片导入电脑?4种使用的照片导入办法

你是否曾为如何将iPhone上的照片导入电脑而烦恼?是否尝试过多种方法,却总是觉得步骤繁琐、效率低下?不用再为找不到好方法而挠头了! 下面分享几种实用的导入办法,让你在短时间内将照片从iPhone照片导入电脑&#xff0…

学习笔记 韩顺平 零基础30天学会Java(2024.8.6)

P471 String对象特性2 数组默认情况下是放到堆里面的 只要调用一个方法就会产生一个新栈,因为是在主方法里创建对象的,所以对象是在栈里面,而str ch这些都应该在堆里面,栈里的对象指向堆中的str ch。这一题很像学C语言的时候遇到的…

红外遥控风扇——arduino

红外遥控风扇——arduino 本节课任务红外遥控红外遥控通信过程红外遥控套件红外遥控接线实现风扇的多种换挡方式用本节课所学的红外遥控,控制RGB彩灯变换颜色,至少配置4种 本节课任务 1、了解红外遥控技术在生活中的运用。 2、学会编程测试红外遥控器的…

nuclei-快速漏洞扫描器【安装使用详解】

★★免责声明★★ 文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与学习之用,读者将信息做其他用途,由Ta承担全部法律及连带责任,文章作者不承担任何法律及连带责任。 1、nuclei介绍 Nuclei是一款基于YAML语法模板的开发的定…

软件包管理|npm【前端工具链】

项目中的依赖 依赖是指可能由他人编写的第三方软件,理想情况下能够为你解决单一的问题。 一个 Web 项目可以有任意数量的依赖,从无到多,并且你的依赖里可以包含了你没有明确安装的子依赖(依赖的依赖)。 项目依赖可以…

Ubuntu 22.04 Docker安装笔记

1、准备一台虚机 可以根据《VMware Workstation安装Ubuntu 22.04笔记》来准备虚拟机。完成后,根据需求安装必要的软件,并设置root权限进行登录。 sudo apt update sudo apt install iputils-ping -y sudo apt install vim -y允许root ssh登录&#xff1…

LVS集群的nat模式详解(负载均衡)

目录 一、LVS集群的介绍 1、LVS 相关术语: 2、lvs工作原理 3、相关名词概念 4、lvs集群的类型 二、lvs的nat模式 1、介绍: 2、数据逻辑: 3、nat实验部署 环境搭建: 1、lvs中要去打开内核路由功能,实现网络互联…

完整指南:卡片设计入门及实用技巧解析

UI卡片是对响应设计的终极回应。无论是响应布局还是自适应布局,卡片UI设计都可以为适应做出贡献,其灵活可控的容器结构可以根据总宽度灵活调整布局结构。虽然UI卡片在加载速度和屏幕适应性上有天然的优势,但由于卡片的意识,每个部…

Windows安装MySQL8.0.X版本归档包(zip包)最新教程

文章目录 1.安装包下载1.1 Windows版本下载2.MySQL8.0.X安装2.1 解压压缩包到指定位置2.2 初始化2.3 安装服务2.4 修改默认密码总结参考资料1.安装包下载 你可以下载 msi 文件一键安装,也可以下载解压版 zip 文件(Archive)进行命令行初始化安装,也是个人推荐的方式。 MyS…

温湿度阈值联网控制

温湿度阈值联网控制 引言 目的: 我们不管使用哪种协议, 哪种解决方案, 我们就目前的情况来看, 我们刚开始是使用 手动修改temp_th和 humi_th的方式, 来实现温湿度阈值的控制.但是对于投入到实际使用的话, 我们还需要使用更方便的联网控制, 所以我们首先利用Onenet的解决方案.…

Kickstart

一:实验前提: 1.RHEl7主机 2.开启图形 init5开图形 3.配置网络可用 4.关闭vmware dhcp功能 5.关闭火墙 二:下载kickstart [roottao ~]# yum install system-config-kickstart 三:启动kickstart并完成相关配置:…

JVM 加载阶段 Class对象加载位置是在 堆中还是方法区?

在JVM(Java虚拟机)的类加载过程中,Class对象的加载位置涉及到堆(Heap)和方法区(Method Area)两个关键区域。具体来说,类的加载阶段涉及到将类的.class文件中的二进制数据读入到内存中…

linux搭建redis超详细

1、下载redis包 链接: https://download.redis.io/releases/ 我以7.0.11为例 2、上传解压 mkdir /usr/local/redis tar -zxvf redis-7.0.11.tar.gz3、进入redis-7.0.11,依次执行 makemake install4、修改配置文件redis.conf vim redis.conf为了能够远程连接redis…

PHP高校教材管理系统-计算机毕业设计源码29810

目 录 摘要 1 绪论 1.1 研究背景 1.2国内外研究现状 1.3系统开发的目标意义 1.4论文结构与章节安排 2 高校教材管理系统系统分析 2.1 可行性分析 2.1.1 技术可行性分析 2.1.2 经济可行性分析 2.1.3 操作可行性分析 2.2 系统功能分析 2.2.1 功能性分析 2.2.2 非功…

Pyside6实战教程专栏目录

Pyside6实战教程🚀 专栏目录介绍 本专栏将详细地向Python开发者展示如何利用PySide6框架创建功能丰富的桌面应用程序。无论你是刚刚接触GUI编程的新手,还是希望快速提升自己技能水平的进阶用户,本文都将为你提供一系列简单易懂的教程&#xf…

Apache漏洞复现CVE-2021-41773

Apache HTTP Server 路径穿越漏洞 漏洞简介 该漏洞是由于Apache HTTP Server 2.4.49版本存在目录穿越漏洞,在路径穿越目录 <Directory/>Require all granted</Directory>允许被访问的的情况下&#xff08;默认开启&#xff09;&#xff0c;攻击者可利用该路径穿越…

混合现实技术在虚拟培训、销售展示及教育科研等领域的应用方向

混合现实技术是虚拟现实技术的进一步发展方向&#xff0c;与传统的沉浸式虚拟现实技术相比混合现实技术能够为用户提供更多元化的观看场景。通过将虚拟物体与现实世界融合的全新形式为&#xff0c;包括虚拟训练、产品销售、教育科研等领域赋能。 混合现实技术中最为重要的是显示…