第一章 Docker入门

1.Docker是什么

        Docker是在Linux容器里运行的应用的开源工具,是一种轻量级的“虚拟机”。诞生于2013年,最初的发起者是dotCloud公司,后来改名为Docker lnc,专注于Docker相关技术和产品的开发。Docker项目目前已经加入了Linux基金会,全部开源代码均在https://github.com/docker上进行相关维护,官网地址为https://www.docker.com/,有相关文档可以参考。现在Docker与OpenStack同为最受欢迎的云计算开源项目。

2.Docker和虚拟机的区别

        作为一种轻量级的虚拟化方式,Docker与传统的虚拟机相比具有显著的优势。

        Docker容器很快,启动和停止可以在秒级实现,比传统虚拟机要快很多;Docker核心解决的问题时利用容器来实现类似VM的功能,从而利用更加节省的硬件资源提供给用户多更的计算资源,所以Docker容器除了运行其中的应用之外,基本不消耗额外的系统资源,从而在保证应用性能的同时,减小系统开销,使得在一台主机上同时运行数千个Docker容器成为可能;Docker操作方便,还可以通过Dockerfile配置文件支持灵活的自动化创建和部署。

3.Docker的核心概念及安装

1.镜像

        Docker的镜像(Image)是创建容器的基础,类似虚拟机的快照,可以理解为是一个面向Docker容器引擎的只读模板。比如,一个镜像可以是一个完整的Centos操作系统环境,称为一个Centos镜像;可以是一个安装了Mysql的应用程序,称为一个Mysql镜像,等等。

        Docker提供了简单的机制来创建和更新现有的镜像,用户也可以从网上下载已经做好的应用镜像来直接使用。

2.容器

        Docker的容器(Container)是从镜像创建的运行实例。它可以启动、停止和删除。所创建的每一个容器都是相互隔离、互不可见,可以保证安全性的平台。可以把容器看作一个简易版的Linux环境,Docker利用容器来运行和隔离应用。

3.仓库

        Docker仓库(Repository)是用来集中保存镜像的地方,当创建了自己的镜像之后,可以使用push命令将它上传到公有仓库(Public)或者私有仓库(Private),这样一来当下次要在另一台机器上使用这个镜像时,只需要从仓库上拉取下来就可以了。

        仓库注册服务器(Registry)是存放仓库的地方,其中包含了多个仓库,每个仓库集中存放某一类镜像,并且使用不同的标签(Tag)来区分它们。目前最大的公共仓库是Docker Hub,存放了数量庞大的镜像供用户下载使用。

 4.安装Docker

        4.1使用YUM方式安装Docker

        YUM的全称是Yellow DogUpdater Modified。利用YUM方式可以很方便的添加、删除和更新Linux系统的程序包,并且能够自动解决包的依赖性问题。使用YUM方式也能够方便的管理大量的系统更新问题。一般使用YUM方式需要连接外部的网络。

(1)为了验证虚拟机是否可以访问外部的网络,输入以下命令访问百度网页。

[root@Linux02 ~]# ping www.baidu.com

(2)执行以下命令使用YUM方式安装Docker。

[root@Linux02 ~]# yum -y install docker

 

 (3)执行以下命令启动Docker的服务。

[root@Linux02 ~]# systemctl start docker.service 
[root@Linux02 ~]# systemctl enable docker.service

(4)执行以下命令确定Docker的版本。

[root@Linux02 ~]# docker version

       4.2使用二进制包方式安装Docker

        使用YUM方式安装Docker非常简单,但需要连接外部的网络。而在实际的企业生产环境中,通常不能直接访问外部网络。这时可以使用Docker官方提供的二进制包进行Docker的离线安装。

(1)安装wget下载工具。

[root@Linux01 ~]# yum -y install wget

(2)下载Docker安装包。

[root@Linux01 ~]# wget https://download.docker.com/linux/static/stable/x
86_64/docker‐20.10.9.tgz

(3)使用tar命令解压缩Docker二进制包。

[root@Linux01 ~]# tar ‐zxvf docker‐20.10.9.tgz

(4) 查看Docker二进制包提供的执行命令。

[root@Linux01 ~]# ls docker

(5)将Docker的可执行命令复制到"/usr/bin"目录下。

[root@Linux01 ~]# cp docker/* /usr/bin

(6)执行以下命令启动Docker服务,启动成功后输出日志信息。

[root@Linux01 ~]# /usr/bin/dockerd

(7)新开启一个命令窗口,执行以下语句查看Docker的版本信息(包括Docker客户端与Docker服务端的版本)。

[root@Linux01 ~]# /usr/bin/docker version

 (8)在"/etc/systemd/system/docker.service"文件中输入以下内容。

[root@Linux01 ~]# cat /etc/systemd/system/docker.service
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network‐online.target firewalld.service
Wants=network‐online.target
[Service]
Type=notify
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill ‐s HUP $MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on‐failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi‐user.target

(9)在创建"/etc/systemd/system/docker.service"文件后,需要给该文件添加可执行权限。

[root@Linux01 ~]# chmod +x /etc/systemd/system/docker.service

(10)启动Docker,并设置Docker为开机模式。

[root@Linux01 ~]# systemctl start docker.service
[root@Linux01 ~]# systemctl enable docker.service

        至此,通过使用二进制包完成了Docker安装。不管使用YUM方式还是二进制包方式,在安装完成后,Docker的使用方式是一样的。但在使用之前,最好验证一下Docker的环境。

4.4 验证Docker环境

        在命令行Xshell中,使用"docker info"命令可以查看Docker运行状态的详细信息。

[root@Linux01 ~]# docker info

 

        通过使用系统服务命令可以查看Docker的运行状态。执行以下命令,可以查看Docker服务的状态。

[root@Linux01 ~]# systemctl status docker.service

4.5 【实战】在Docker中部署一个应用 

        在成功安装Docker后,就可以通过镜像来创建容器,从而运行应用。下面将演示如何在Docker中,通过使用Nginx镜像来部署一个应用,并在浏览器中访问它。

        下面是具体的步骤

(1)在镜像仓库中搜索Nginx镜像,如图所示。其中,OFFICAL列中标有【OK】的镜像是Docker官方提供的镜像。

[root@Linux01 ~]# docker search nginx

 (2)通过以下命令从镜像仓库拉取Nginx的镜像到本地。

[root@Linux01 ~]# docker pull nginx

 

(3)使用"docker images"命令查看本地的镜像信息。

[root@Linux01 ~]# docker images

(4)执行以下命令将使用镜像来创建Nginx容器。

[root@Linux01 ~]# docker run -d -p 1234:80 nginx

其中的参数说明如下:

  • -d:启动容器的守护进程。
  • -p:将容器内的80端口映射到宿主机的1234端口,这样就可以通过宿主机访问容器内部了。

(5) 在容器创建并启动成功后,可以查看Docker的容器信息。

[root@Linux01 ~]# docker ps

alias myps='docker ps --format "table {{.ID}}\t{{.Image}}\t{{.Names}}\t{{.Ports}}"'
alias myimages='docker images --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}"'

 

(6)打开浏览器访问"https://192.168.56.10:1234",将打开Nginx的首页。 

(7)如果要终止和销毁容器,则执行以下命令。

[root@Linux01 ~]# docker rm -f 397944e48313

(8)再次查看容器信息,可以看到没有任何运行的容器信息。

智能网联汽车的安全员高级考试涉及多个方面的专业知识,包括但不限于自动驾驶技术原理、车辆传感器融合、网络安全防护以及法律法规等内容。以下是针对该主题的一些核心知识解析: ### 关于智能网联车安全员高级考试的核心内容 #### 1. 自动驾驶分级标准 国际自动机工程师学会(SAE International)定义了六个级别的自动驾驶等级,从L0到L5[^1]。其中,L3及以上级别需要安全员具备更高的应急处理能力。 #### 2. 车辆感知系统的组成与功能 智能网联车通常配备多种传感器,如激光雷达、毫米波雷达、摄像头和超声波传感器等。这些设备协同工作以实现环境感知、障碍物检测等功能[^2]。 #### 3. 数据通信与网络安全 智能网联车依赖V2X(Vehicle-to-Everything)技术进行数据交换,在此过程中需防范潜在的网络攻击风险,例如中间人攻击或恶意软件入侵[^3]。 #### 4. 法律法规要求 不同国家和地区对于无人驾驶测试及运营有着严格的规定,考生应熟悉当地交通法典中有关自动化驾驶部分的具体条款[^4]。 ```python # 示例代码:模拟简单决策逻辑 def decide_action(sensor_data): if sensor_data['obstacle'] and not sensor_data['emergency']: return 'slow_down' elif sensor_data['pedestrian_crossing']: return 'stop_and_yield' else: return 'continue_driving' example_input = {'obstacle': True, 'emergency': False, 'pedestrian_crossing': False} action = decide_action(example_input) print(f"Action to take: {action}") ``` 需要注意的是,“同学”作为特定平台上的学习资源名称,并不提供官方认证的标准答案集;建议通过正规渠道获取教材并参加培训课程来准备此类资格认证考试
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值