热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Linux虚拟机安装及Docker常用操作

一、Docker概述:将下边晦涩难懂的灰色描述方式简化为下边蓝色字体的描述方式,请背诵这段蓝色文字。Docker是一个用来开发软件、运行软件、传输软件的平台。可以


一、Docker 概述:

将下边晦涩难懂的灰色描述方式简化为下边蓝色字体的描述方式, 请背诵这段蓝色文字。

Docker是一个用来开发软件、 运行软件、传输软件的平台。 可以将软件的运行环境和软件放到一个容器中封装到一块儿。 不论是进行软件测试, 还是软件部署,还是通过网络远程传输来升级软件都可以将这个整体传递到另一端来进行测试、部署、或升级。这样不会出现开发没问题,但是因为软件的运行环境版本问题导致 测试失败、部署失败、或升级后无法运行。

我们把软件和它的运行环境封装成一个整体, 把这个整体进行传输或保存时是以镜像image文件的形式进行的。 如果要把这个整体运行起来,是根据镜像文件来启动的,根据镜像文件来启动出来的这个正在执行的整体称作容器container

其他:

1.镜像image容器container的使用都要依赖Docker软件。

2.镜像服务器(registry):有很多网站收集了很多定制好的镜像, 比如mysql镜像。 我们从这些网站下载这个镜像到本地仓库后,再根据本地仓库的镜像启动出一个容器, 我们的linux中就可以使用这个软件了。

3.本地镜像仓库repository 存储下载好的镜像的一个仓库(一个文件夹)

注意: Docker学习主要是上边的蓝色文字比较重要,以及下边的第六七八项比较重要。


Docker是一个用来开发、运输和运行应用程序的开放平台。使用Docker可以将应用程序与基础结构分离,以便快速交付软件。使用Docker,您可以以管理应用程序的方式管理基础架构。通过利用Docker的方法快速传送、测试和部署代码,可以显著减少编写代码和在生产中运行代码之间的延迟。


Docker是一个用来开发、运输和运行应用程序的开放平台。使用Docker可以将应用程序与基础结构分离,以便快速交付软件。使用Docker,您可以以管理应用程序的方式管理基础架构。通过利用Docker的方法快速传送、测试和部署代码,可以显著减少编写代码和在生产中运行代码之间的延迟。



一、配置虚拟机:

1.1.解压RockyLinux_8.5_VBM.7z

获得1.78GB的文件,然后打开这个文件夹

 

1.2.双击蓝色图标

会自动开启virtualbox虚拟机,并加载当前镜像

注意:必须保证当前镜像文件所在全部路径都没有中文

选中镜像,点击设置,修改usb设置

 

1.3.设置网络桥连

 


二、启动虚拟机:

2.1.上面配置完成之后,可以启动虚拟机

启动虚拟机之后,等待出现登录页面

注意:用户名密码默认都是rockylinux

登录之后,我们的用户是rockylinux用户,这个用户并不是系统最高权限的用户

我们需要登录系统最高权限的用户root才能畅通无阻的配置和安装系统软件

2.2.输入右边命令切换到root账户 :

sudo su -

2.3.然后用passwd命令为root用户设置一个密码,方便今后登录

passwd

2.4.设置完成之后,我们尝试连接网络,如果能够有周期响应表示当前虚拟机可以使用网络

如果没有响应,尝试重新调整网卡网络共享配置和虚拟机的网卡桥接配置

ping www.baidu.com

注意:Ctrl+C可以随时退出当前运行的程序 返回到命令符

2.5.查虚拟机ip地址:

虚拟机启动后,如果用宿主机(真实电脑)访问虚拟机, 则虚拟机必须有一个ip地址

ifconfig 或 ifconfig | more

ipconfig|more是分页显示

上边命令可以查看当前虚拟机网络情况, 查看自己的ip,比如: 192.168.0.125

后边可以用linux客户端软件根据此ip来连接虚拟机



三、客户端连接Linux

无论是虚拟机还是实际的物理服务器

我们想远程的控制这个机器的话,都需要使用一个客户端软件,来专门连接服务器,并向服务器发送指令的客户端。

市面上有很多可以连接linux远程服务器的客户端软件比如xshell,我们给大家介绍的Bitvise SSH Client属于免费软件中比较易用的。

 

连接服务器的核心参数如下:

输入记录的ip地址 192.168.0.125

端口号22

输入用户名 root

输入密码 root



四、Docker:



4.1.什么是Docker

Docker是一个用来开发、运输和运行应用程序的开放平台。使用Docker可以将应用程序与基础结构分离,以便快速交付软件。使用Docker,您可以以管理应用程序的方式管理基础架构。通过利用Docker的方法快速传送、测试和部署代码,可以显著减少编写代码和在生产中运行代码之间的延迟。



4.2.为什么使用Docker


  • 更快速的应用交付和部署:

传统的应用开发完成后,需要提供一堆安装程序和配置说明文档,安装部署后需根据配置文档进行繁杂的配置才能正常运行。Docker化之后只需要交付少量容器镜像文件,在正式生产环境加载镜像并运行即可,应用安装配置在镜像里已经内置好,大大节省部署配置和测试验证时间。


  • 更便捷的升级和扩缩容:

随着微服务架构和Docker的发展,大量的应用会通过微服务方式架构,应用的开发构建将变成搭乐高积木一样,每个Docker容器将变成一块“积木”,应用的升级将变得非常容易。当现有的容器不足以支撑业务处理时,可通过镜像运行新的容器进行快速扩容,使应用系统的扩容从原先的天级变成分钟级甚至秒级。


  • 更简单的系统运维:

应用容器化运行后,生产环境运行的应用可与开发、测试环境的应用高度一致,容器会将应用程序相关的环境和状态完全封装起来,不会因为底层基础架构和操作系统的不一致性给应用带来影响,产生新的BUG。当出现程序异常时,也可以通过测试环境的相同容器进行快速定位和修复。


  • 更高效的计算资源利用:

Docker是内核级虚拟化,其不像传统的虚拟化技术一样需要额外的Hypervisor [管理程序] 支持,所以在一台物理机上可以运行很多个容器实例,可大大提升物理服务器的CPU和内存的利用率。

 

 


4.3.docker名词解释


  • 容器(container)

首先需要了解什么是容器,容器就是一个进程,内部是独立运行的一个或者是一组应用。它可以被启动、开始、停止、删除。每个容器都是相互隔离的,保证安全的平台

注意: 每个容器都有用于通信的ip, 容器之间可以通过ip进行通信(还有用户自定义桥接网络 User-defined networks通信等方式)


  • 镜像(image)

镜像(Image)就是一个只读的模板文件。镜像可以用来创建 Docker 容器,一个镜像可以创建很多容器。 就好似 Java 中的 类和对象,类就是镜像,容器就是对象!也可以把镜像看成是模具,而镜像创建出来的容器就是通过这个模具创建的一个个的实际产品


  • 宿主机(host)

宿主机就是我们调用命令使用镜像创建容器的服务器。


  • 镜像仓库(repository)

一个用来容纳多个镜像的仓库,可以链接仓库获取你想要的内部镜像,一般一个镜像仓库中包含多个不同tag的镜像。


  • 镜像服务器(registry)

镜像仓库占用的服务器,这里注意一个镜像服务器未必只有一个仓库,可以有很多仓库,每个仓库又保管的是不同镜像。


  • 客户端(docker-client)

调用docker命令,操作镜像,容器的进程。只要能链接宿主机,操作docker的进程都是docker-client。



五、Docker相关资料


1.Docker官网:

Home - Docker

所有步骤,均参考官方文档:

Install Docker Engine on CentOS | Docker Documentation


2.Docker Hub官网(镜像仓库):

Docker Hub


六、安装并配置docker环境


  • 设置docker仓库,并且从仓库安装所需内容。
  • 下载RPM安装包,手动更新安装。
  • 为测试和开发环境使用自定义脚本安装。

三种方式中,从仓库安装是最简单的

但是需要虚拟机有网络环境

我们使用的rockylinux支持yum命令


yum命令就像手机中的应用商店一样


6.1.安装yum-utils包: 为了实现方便的安装各种"应用商店"中包含的程序

yum install -y yum-utils

6.2.指定docker仓库路径:

yum-config-manager \--add-repo \https://download.docker.com/linux/centos/docker-ce.repo


七、安装\启动Docker引擎

7.1.下面开始安装Docker环境(安装Docker软件):

也是使用yum命令

yum -y install docker-ce docker-ce-cli containerd.io

运行后,当前linux系统就具备了启动Docker的环境

7.2.使用下面的命令启动Docker

systemctl start docker

7.3.测试Docker

Docker软件有一个专用的测试镜像

docker run hello-world

看到下面的信息


Hello from Docker!



This message shows that your installation appears to be working correctly.



表示docker一切正常


八、Docker基础命令



8.1.Docker命令格式

Docker命令的语法结构

docker 子命令 [选项]

docker都有哪些子命令呢,我们可以使用docker的helper子命令查看

docker --help

如果想查询具体的子命令的使用方式

docker 子命令 --help

我们最常用的子命令之一:启动docker容器的run的相关帮助可以

docker run --help

当然也可以吃查询官方文档或百度了解更多内容

Reference documentation | Docker Documentation



8.2.images命令

docker images命令主要能完成查看当前本地镜像库的内容

docker images

这个命令的返回结果显示:


  • REPOSITORY:镜像仓库名,也叫作镜像名。
  • TAG:标签,常用版本号标识仓库,如果是latest就是最新版本。
  • IMAGE ID:镜像id。
  • CREATED:创建镜像时间。
  • SIZE:大小。

调用docker images的常用选项如下:


  • -a:显示所有信息。
  • -q:只显示镜像id,这个在批量操作镜像文件时比较常见


8.3.search命令

我们在从网络中拉去镜像之前,需要先搜索正确的镜像名称

借助search命令

docker search mysql

这个命令的返回结果显示:


  • NAME:镜像名称。
  • DESCRIPTION:镜像描述。
  • STARS:镜像星级,越高表示越热,使用人越多。
  • OFFICIAL:是否官方镜像。
  • AUTOMATED:是否支持自动化部署。


8.4.pull命令

当我们搜索到想要下载拉取的镜像后

就可以使用pull命令,从镜像服务器下载拉取镜像到本地仓库

docker pull mysql

下载默认是最新版本

如果想指定版本号(版本号官方文档可查)

docker pull mysql:5.7.35


8.5.rmi命令

当本地系统中的镜像较多时,可以删除不适用的镜像,节省空间

使用rmi命令,删除时指定的是镜像id

所以一般都会先使用docker images查看要删除的镜像id 然后复制

docker rmi feb5d9fea6a5

删除运行中的镜像会报错 如果需要强制删除这个镜像加-f选项

docker rmi feb5d9fea6a5 -f

rmi命令的选项:


  • -f:强制删除这个镜像,无论是否正在使用。


8.6.run命令

docker run 可以指定本地仓库的镜像文件启动,创建新的容器然后运行

要注意一个镜像是可以创建多个容器启动,然后运行的

docker run --name mysql -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -v /root/data:/var/lib/mysql mysql:5.7.35

1: --name mysql:该容器启动后的名字:(自定义命名)如果没有设置,系统会自动设置一个,毕竟如果开启太多的容器,记不住就很尴尬,建议加上见名知意。

2:-d 代表后台启动该服务

3:-p 3306(这是liunx的端口号,我习惯说成宿主机,如果我们想要远程服务的话,访问的端口就是这个端口):3306(docker容器的端口,每一个容器都是独立的,可理解成操作系统层面的系统),访问这个端口就是先通过远程访问宿主机的端口,再映射到docker容器的端口访问mysql。

4:-e MYSQL_ROOT_PASSWORD=123456 这是说mysql启动需要的开机密码,默认的账号是root ,密码就是上面设置的:123456

5:-v /root/data:/var/lib/mysql /root/data/:这是宿主机的数据存放路径(你也可以自定义), /var/lib/mysql:这是mysql容器存放数据的地方。也是为了同步数据,防止,容器被删除以后,数据就不存在了。

6:启动成功后就返回一个容器ID



8.7.ps命令

当容器启动后,我们在宿主机输入docker ps可以查看当前正在运行的容器列表

docker ps

  • container id:容器id,很多操作容器命令都需要用到的参数。
  • image:容器创建使用的镜像。
  • command:容器中在运行的进程或者命令。
  • created:创建时间。
  • status:容器状态。
  • ports:容器的端口映射情况,这里没有用到端口。
  • names:容器的名字,启动没有指定--name选项,会默认使用一个名字。

ps命令中常见的选项如下:


  • -a:显示所有容器,如果不加只显示正在启动运行的容器,停止的不会显示。
  • -l:显示最近的启动创建的容器。
  • -n=[数字]:显示最近n个容器。
  • -q:只显示容器id。经常和-a一起使用,获得当前宿主机所有容器id参数集合。


8.8.stop\rm命令

当前正在启动的容器如果想停止就使用stop命令

如果想删除容器,就stop命令停止之后执行rm命令

注意:这里rm删除的是容器,不是本地镜像,和rmi命令要区分

首先使用docker ps命令查询所有正在运行的容器

docker stop [容器id]
docker rm [容器id]

rm的选项有:

-f:强制删除容器,无论是否运行,如果不加,运行的容器无法删除。

课堂作业 自己安装运行一个redis

docker run -itd --name redis-test -p 6379:6379 redis
docker exec -it redis redis-cli



zhaoYQ 2022-07-13


推荐阅读
  • {moduleinfo:{card_count:[{count_phone:1,count:1}],search_count:[{count_phone:4 ... [详细]
  • 大坑|左上角_pycharm连接服务器同步写代码(图文详细过程)
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了pycharm连接服务器同步写代码(图文详细过程)相关的知识,希望对你有一定的参考价值。pycharm连接服务 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • imx6ull开发板驱动MT7601U无线网卡的方法和步骤详解
    本文详细介绍了在imx6ull开发板上驱动MT7601U无线网卡的方法和步骤。首先介绍了开发环境和硬件平台,然后说明了MT7601U驱动已经集成在linux内核的linux-4.x.x/drivers/net/wireless/mediatek/mt7601u文件中。接着介绍了移植mt7601u驱动的过程,包括编译内核和配置设备驱动。最后,列举了关键词和相关信息供读者参考。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • 本文探讨了容器技术在安全方面面临的挑战,并提出了相应的解决方案。多租户保护、用户访问控制、中毒的镜像、验证和加密、容器守护以及容器监控都是容器技术中需要关注的安全问题。通过在虚拟机中运行容器、限制特权升级、使用受信任的镜像库、进行验证和加密、限制容器守护进程的访问以及监控容器栈,可以提高容器技术的安全性。未来,随着容器技术的发展,还需解决诸如硬件支持、软件定义基础设施集成等挑战。 ... [详细]
  • 如何使用PLEX播放组播、抓取信号源以及设置路由器
    本文介绍了如何使用PLEX播放组播、抓取信号源以及设置路由器。通过使用xTeve软件和M3U源,用户可以在PLEX上实现直播功能,并且可以自动匹配EPG信息和定时录制节目。同时,本文还提供了从华为itv盒子提取组播地址的方法以及如何在ASUS固件路由器上设置IPTV。在使用PLEX之前,建议先使用VLC测试是否可以正常播放UDPXY转发的iptv流。最后,本文还介绍了docker版xTeve的设置方法。 ... [详细]
  • 现在比较流行使用静态网站生成器来搭建网站,博客产品着陆页微信转发页面等。但每次都需要对服务器进行配置,也是一个重复但繁琐的工作。使用DockerWeb,只需5分钟就能搭建一个基于D ... [详细]
  • DockerDataCenter系列(四)-离线安装UCP和DTR,Go语言社区,Golang程序员人脉社 ... [详细]
  • systemd-nspawn可以创建最轻量级的容器(ns的意思就是namespace),本文的实验平台是Ubuntu16.04,x86_64机器。本文的目的是:在Ubuntu中用syst ... [详细]
  • mysql自动打开文件_让docker中的mysql启动时自动执行sql文件
    本文提要本文目的不仅仅是创建一个MySQL的镜像,而是在其基础上再实现启动过程中自动导入数据及数据库用户的权限设置,并且在新创建出来的容器里自动启动My ... [详细]
  • 现象:[root@localhost~]#dockerrun-d-p9000:80centos:httpdbinsh-cusrlocalbinstart.shd5b2bd5a7bc ... [详细]
author-avatar
愛情伈語gg
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有