《项目十Docker的配置与管理课件.pptx》由会员分享,可在线阅读,更多相关《项目十Docker的配置与管理课件.pptx(40页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、单击此处编辑母版标题样式 Docker的配置与管理项目十Docker的配置与管理 学习目标学习目标 知识目标 1识记:Docker的概念和功能;Docker的优势和应用场景。 2领会:Docker镜像、容器和仓库的功能。 技能目标 1会Docker的安装、启动和测试等操作; 2会Docker镜像的搜索、获取、查看和删除等操作; 3会Docker容器的创建、启动以及控制其状态等操作; 4能应用Docker技术搭建网络服务器。 素质目标 1通过学习Docker的概念和功能等知识点,培养学生分析问题和解决问题的能力; 2通过学习Docker镜像和容器的配置等操作,培养学生爱岗敬业和精益求精的工匠精神
2、。项目十Docker的配置与管理 项目引述随着计算机近几十年的快速发展,诞生了许多优秀的软件。在此期间Docker技术横空出世,它提供了简单、灵活和高效的解决方案,人们不需要过多的改变现有的使用习惯,就可以和已有的工具配合使用。Docker技术能够帮助开发人员、系统管理员和版本控制工程师在 个生产环节中协同工作。制订 套容器标准能够使系统管理员在更改容器的时候,不需要程序员关心容器的变化,只需关注于自已的应用程序代码即可。这样做的好处是隔离了开发和管理,简化了开发和部署的成本。李工程师在完成WWW服务的配置与安全管理培训后,开始对Docker服务的配置与管理进行讲解,其目标包括熟悉Docker
3、的概念、优势和应用场景、熟悉Docker镜像、容器和仓库的功能、掌握Docker镜像和容器的配置、掌握使用Docker技术搭建网络服务器的方法等。为了达到以上目标,李工程师制定了如下任务计划:Docker服务的基本配置Docker镜像和容器的配置Docker服务的应用实例项目引述项目十Docker的配置与管理学习内容任务1Docker的基本配置0102任务2Docker镜像和容器的配置03任务3Docker的应用实例项目十Docker的配置与管理任务1 Docker的基本配置项目十Docker的配置与管理 工序1.安装Docker主要步骤(1)将的网络连接模式均设置为主机模式。(2)启动Cen
4、tOS 8-1和CentOS 8-2系统,其中CentOS 8-1使用root用户登录到系统的字符界面,而CentOS 8-2使用root用户登录到系统的图形界面。(3)设置CentOS 8-1系统的IP地址为,CentOS 8-2系统的IP地址为。(4)卸载与Docker相冲突的软件包1rootCentOS # dnf remove -y podman buildah / /卸载与卸载与Docker相冲突的软件包相冲突的软件包项目十Docker的配置与管理 工序1.安装Docker主要步骤(5)安装Docker依赖环境和指o定Docker仓库源1rootCentOS # dnf instal
5、l -y yum-utils /安装安装yum-utils软件包软件包rootCentOS # yum-config-manager -add-repo https:/ /使用国内阿里云源的使用国内阿里云源的Docker仓库仓库(6)安装 Docker Engine-CommunityrootCentOS # dnf install -y containerd.io /安装安装containerd.io软件包软件包rootCentOS # dnf install -y docker-ce -nobest/安装安装docker-ce软件包,软件包,-nobest选项是使用最佳选择的软件包选项是使
6、用最佳选择的软件包项目十Docker的配置与管理 工序2.启动和查看Docker编辑Apache主配置文件1rootCentOS # systemctl start docker /开启开启Docker服务服务rootCentOS # systemctl enable docker /设置设置Docker服务开机时自启动服务开机时自启动rootCentOS # docker version Client: Docker Engine - Community Version: 20.10.7 API version: 1.40 Go version: go1.13.15 Git commit:
7、f0df350 Built: Wed Jun 2 11:56:24 2021 OS/Arch: linux/amd64 Context: default Experimental: true项目十Docker的配置与管理 工序2.启动和查看Docker启动和查看Docker1Server: Docker Engine - Community Engine: Version: 19.03.15 /查看查看Docker的版本信息的版本信息 API version: 1.40 (minimum version 1.12) Go version: go1.13.15 Git commit: 99e3e
8、d8919 Built: Sat Jan 30 03:15:19 2021 OS/Arch: linux/amd64 Experimental: false containerd: Version: 1.4.8 GitCommit: 7eba5930496d9bbe375fdf71603e610ad737d2b2 项目十Docker的配置与管理 工序2.启动和查看Docker测试Docker1rootCentOS # docker run hello-world /通过运行通过运行 hello-world 镜像来验证是否正确安装了镜像来验证是否正确安装了 DockerHello from Do
9、cker!This message shows that your installation appears to be working correctly./看到以上信息表明目前看到以上信息表明目前Docker工作正常工作正常项目十Docker的配置与管理 任务二Docker镜像和容器的配置项目十Docker的配置与管理 工序1.配置前准备工作主要步骤(1)将的网络连接模式均设置为主机模式。(2)启动CentOS 8-1和CentOS 8-2系统,其中CentOS 8-1使用root用户登录到系统的字符界面,而CentOS 8-2使用root用户登录到系统的图形界面。(3)设置CentOS
10、8-1系统的IP地址为,CentOS 8-2系统的IP地址为。(4)安装和启动Docker服务2项目十Docker的配置与管理 工序2.配置Docker镜像搜索镜像1docker search 关键字关键字使用docker search命令可以用来从镜像仓库中搜索镜像,其语法格式是:以下举例说明其用法:rootCentOS # docker search centosNAME DESCRIPTION STARS OFFICIAL AUTOMATEDcentos The official build of CentOS. 6666 OK ansible/centos7-ansible Ansib
11、le on Centos7 134 OK/通过搜索镜像仓库可以返回所有包含通过搜索镜像仓库可以返回所有包含centos关键字的镜像,其中返回信息包括关键字的镜像,其中返回信息包括NAME(镜像名称)、镜像名称)、DESCRIPTION(镜像描述)、镜像描述)、STARS(星级)、星级)、OFFICIAL(是否官方创建)和是否官方创建)和AUTOMATED(是否主动创建是否主动创建)项目十Docker的配置与管理 工序2.配置Docker镜像获取镜像1docker pull 仓库名称仓库名称:标签标签使用docker pull命令可以用来从镜像仓库中下载镜像到本地,其语法格式是:标签主要用来区分
12、镜像版本,如果不指定标签,默认会下载镜像仓库中最新版本的镜像,即标签为latest。rootCentOS # docker pull centos /从镜像仓库中获取最新版的从镜像仓库中获取最新版的centos镜像镜像Using default tag: latestlatest: Pulling from library/centos7a0437f04f83: Pull complete Digest: sha256:5528e8b1b1719d34604c87e11dcd1c0a20bedf46e83b5632cdeac91b8c04efc1Status: Downloaded newer
13、 image for centos:latestdocker.io/library/centos:latest以下举例说明其用法:项目十Docker的配置与管理 工序2.配置Docker镜像查看镜像1docker pull 仓库名称仓库名称:标签标签使用docker images命令可以用来查看下载到本地的镜像信息,其语法格式是:rootCentOS # docker images centosREPOSITORY TAG IMAGE ID CREATED SIZEcentos latest 300e315adb2f 7 months ago 209MB/查看下载到本地关于查看下载到本地关于c
14、entos的镜像信息。以上信息包括的镜像信息。以上信息包括REPOSITORY(镜像所在的仓库)、镜像所在的仓库)、TAG(镜像的标签)、镜像的标签)、IMAGE ID(镜像的镜像的ID号)、号)、CREATED(镜像的创建时间)、镜像的创建时间)、SIZE(镜镜像的大小)像的大小)如果不加仓库名称:标签,则查看下载到本地的所有镜像信息。以下举例说明其用法:小提示:镜像的ID号是唯一的,用来唯一标识某个镜像。项目十Docker的配置与管理 工序2.配置Docker镜像删除镜像1docker pull 仓库名称仓库名称:标签标签使用docker rmi命令可以用来删除本地的镜像,其语法格式是:r
15、ootCentOS # docker rmi centos /删除本地的删除本地的centos镜像镜像也可以使用镜像的ID来删除镜像。以下举例说明其用法:小提示:当一个镜像有多个标签时,此命令只会删除该镜像多个标签中指定标签,不会影响镜像,如果只剩下一个标签时才会彻底删除该镜像。项目十Docker的配置与管理 工序2.配置Docker镜像存出和载入镜像1docker save -o 存出的文件名存出的文件名 存出的镜像存出的镜像docker load -i 存出的文件存出的文件使用docker save和docker load命令可以用来存出和载入镜像,其语法格式是:rootCentOS #
16、docker save -o centos8 centos /存出本地的存出本地的centos镜像为文件镜像为文件centos8rootCentOS # docker load -i centos8 /从文件从文件centos8中载入镜像到本地中载入镜像到本地以上两个操作常用来将镜像复制到其他系统中。以下举例说明其用法:项目十Docker的配置与管理 工序3.配置Docker容器创建与启动容器1docker run 选项选项 镜像镜像 运行的程序运行的程序使用docker run命令可以创建与启动容器,其语法格式是:该命令常见的选项包括:-d:使容器在后台运行并输出容器的ID -i:使容器的输
17、入保持打开状态-t:分配一个伪终端,一般与-i同时使用 -p:为容器与docker宿主机设置端口映射-v:为容器与docker宿主机绑定数据卷 -e:为容器声明环境变量-h:设置容器里面的主机名 -name:为容器取一个名字-volume-from:挂载其他容器中的数据卷-network:设置容器网络模式,共有四种模式,分别是bridge(默认模式,使用docker指定的网桥,默认为docker0)、host(使用主机的网络)、container(使用其他容器的网络,共享IP和PORT等网络资源)和none(使用自己的网络)-restart:设置容器退出时的重启策略,共有四种策略,分别是no(
18、默认策略,退出不重启)、always(退出总是重启)、on-failure(非正常退出时重启)和unless-stopped(退出时总是重启,如果容器正常退出,然后机器重启或docker服务重启,容器将不会被重启)-privileged:开启特权模式,这种模式下容器对docker宿主机拥有root访问权限,要慎重使用项目十Docker的配置与管理 工序3.配置Docker容器用法举例说明1rootCentOS # docker run -itd -name CentOS8-1 centos/从本地镜像从本地镜像centos上创建并启动名称为上创建并启动名称为CentOS8-1的容器,使其在后台
19、运行,保持打开并分配一个伪终端的容器,使其在后台运行,保持打开并分配一个伪终端rootCentOS # docker run -itd -name CentOS8-2 -p 8080:80 centos/从本地镜像从本地镜像centos上创建并启动名称为上创建并启动名称为CentOS8-2的容器,使其在后台运行,保持打开并分配一个伪终端,的容器,使其在后台运行,保持打开并分配一个伪终端,同时设置宿主机的同时设置宿主机的8080端口与容器的端口与容器的80端口间的映射关系端口间的映射关系rootCentOS # docker run -itd -name CentOS8-3 -v /data1:
20、/data1 centos/从本地镜像从本地镜像centos上创建并启动名称为上创建并启动名称为CentOS8-3的容器,使其在后台运行,保持打开并分配一个伪终端,的容器,使其在后台运行,保持打开并分配一个伪终端,同时将宿主机的目录同时将宿主机的目录/data1和容器的目录和容器的目录/data1绑定绑定rootCentOS # docker run -itd -name CentOS8-4 -h test -network=host centos/从本地镜像从本地镜像centos上创建并启动名称为上创建并启动名称为CentOS8-4的容器,使其在后台运行,保持打开并分配一个伪终端,的容器,使
21、其在后台运行,保持打开并分配一个伪终端,同时设置容器内的主机名为同时设置容器内的主机名为test,网络模式为主机模式网络模式为主机模式rootCentOS # docker run -itd -name CentOS8-5 -restart=always -privileged centos/从本地镜像从本地镜像centos上创建并启动名称为上创建并启动名称为CentOS8-5的容器,使其在后台运行,保持打开并分配一个伪终端,的容器,使其在后台运行,保持打开并分配一个伪终端,同时开启容器的特权模式,设置容器退出时总是重启同时开启容器的特权模式,设置容器退出时总是重启项目十Docker的配置与管
22、理 工序3.配置Docker容器控制容器的状态查看容器的状态1docker ps 选项选项使用docker ps命令可以用来启动容器,其语法格式是:该命令常见的选项包括:-a:查看所有容器的状态,如果不加此选项则只能查看运行的容器状态权限,要慎重使用以下举例说明其用法:rootCentOS # docker ps -a /查看所有容器的状态,CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESdf5db625dae2 centos /bin/bash 36 seconds ago Up 35 seconds CentOS8-53a0f2a4
23、5cb9c centos /bin/bash 43 seconds ago Up 41 seconds CentOS8-42d60129835c4 centos /bin/bash 49 seconds ago Up 48 seconds CentOS8-3d9f7dc4f492a centos “/bin/bash” 58 seconds ago Up 57 seconds 0.0.0.0:8080-80/tcp CentOS8-2其中CONTAINER ID(容器的ID)、IMAGE(加载的镜像)、COMMAND(运行的程序)、CREATED(创建时间)、STATUS(当前状态,UP为正在
24、运行,Exited为已停止)、PORTS(端口映射)和NAMES(容器名称)项目十Docker的配置与管理 工序3.配置Docker容器控制容器的状态启动容器的状态1docker start 容器名称容器名称使用docker start命令可以用来启动容器,其语法格式是:也可以使用容器的ID来启动容器。以下举例说明其用法:rootCentOS # docker start CentOS8-1 /启动名称为启动名称为CentOS8-1的容器的容器rootCentOS # docker start 39b1e47f9977 /启动启动ID为为39b1e47f9977的容器的容器小提示:在使用doc
25、ker run命令创建容器时,容器会自动启动,无需再用docker start命令启动。项目十Docker的配置与管理 工序3.配置Docker容器控制容器的状态停止容器的状态1docker stop 容器名称容器名称使用docker stop命令可以用来停止容器运行,其语法格式是:也可以使用容器的ID来重启容器。以下举例说明其用法:rootCentOS # docker restart CentOS8-3 /重启名称为重启名称为CentOS8-3的容器的容器rootCentOS # docker restart 2d60129835c4/重启重启ID为为2d60129835c4的容器的容器项
26、目十Docker的配置与管理 工序3.配置Docker容器控制容器的状态重启容器1docker restart 容器名称容器名称使用docker restart命令可以用来重启容器,其语法格式是:也可以使用容器的ID来停止容器。以下举例说明其用法:rootCentOS # docker restart CentOS8-3 /重启名称为重启名称为CentOS8-3的容器的容器rootCentOS # docker restart 2d60129835c4 /重启重启ID为为2d60129835c4的容器的容器项目十Docker的配置与管理 工序3.配置Docker容器进入和退出容器1docker
27、 exec 选项选项 容器名称容器名称 运行的程序运行的程序使用docker exec命令可以用来进入容器,其语法格式是:该命令常见的选项包括:-i:使容器的输入保持打开状态 -t:分配一个伪终端,一般与-i同时使用也可以使用容器的ID来进入容器。以下举例说明其用法:rootCentOS # docker exec -it CentOS8-4 /bin/bash /进入进入CentOS8-4的容器,保持打开并分配个伪终端的容器,保持打开并分配个伪终端roottest /#ls /此时已经进入容器内部,用户可以在创建的终端中输入命此时已经进入容器内部,用户可以在创建的终端中输入命令令bin de
28、v etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var roottest /# exitexitrootCentOS # /退出容器,此时又回到宿主机中退出容器,此时又回到宿主机中项目十Docker的配置与管理 工序3.配置Docker容器删除容器1docker rm 容器名称容器名称使用docker rm命令可以用来删除容器,其语法格式是:也可以使用容器的ID来删除容器。以下举例说明其用法:rootCentOS # docker rm CentOS8-5 /删除名称为删除名称为C
29、entOS8-5的容器的容器rootCentOS # docker rm df5db625dae2 /删除删除ID为为df5db625dae2的容器的容器项目十Docker的配置与管理 工序3.配置Docker容器导出与导入容器1docker export -o 保存的文件名保存的文件名 容器名称或容器名称或IDdocker import 保存的文件名保存的文件名 生成的镜像名称生成的镜像名称:标签标签使用docker export和docker import命令可以用来导出和导入容器,其语法格式是:以上两个操作常用来将容器复制,然后在其他系统中导入为本地镜像。以下举例说明其用法:rootCe
30、ntOS # docker export -o centos8 CentOS8-1/导出本地的导出本地的CentOS8-1容器到文件容器到文件centos8rootCentOS # docker import centos8 centos8-1/导入文件导入文件centos8成为本地镜像成为本地镜像centos8-1项目十Docker的配置与管理任务三 Docker的应用实例项目十Docker的配置与管理 工序1.应用前的准备工作主要步骤(1)将网络连接模式均设置为主机模式。(2)启动CentOS 8-1和CentOS 8-2系统,其中CentOS 8-1使用root用户登录到系统的字符界面,
31、而CentOS 8-2使用root用户登录到系统的图形界面。(3)设置CentOS 8-1系统的IP地址为,CentOS 8-2系统的IP地址为。(4)在CentOS8-1上安装和启动Docker服务3项目十Docker的配置与管理 工序2. Docker环境下搭建WWW服务器在镜像仓库中搜索httpd镜像3rootCentOS8-1 # docker search httpd NAME DESCRIPTION STARS OFFICIAL AUTOMATEDhttpd The Apache HTTP Server Project 3607 OK centos/httpd-24-centos7
32、 Platform for running Apache httpd 40 centos/httpd 34 OKpolinux/httpd-php Apache with PHP in Docker 5 OK /从以上搜索结果看,选择第一个星级最高且为官方创建的镜像从以上搜索结果看,选择第一个星级最高且为官方创建的镜像项目十Docker的配置与管理 工序2. Docker环境下搭建WWW服务器在镜像仓库中搜索httpd镜像3rootCentOS8-1 # docker pull httpd /获取并查看获取并查看httpd镜像镜像Using default tag: latestlatest:
33、 Pulling from library/httpd33847f680f63: Pull complete d74938eee980: Pull complete 963cfdce5a0c: Pull complete 8d5a3cca778c: Pull complete e06a573b193b: Pull complete Digest: sha256:61e49dd08a51d6fc421ed257bd8eb461cf2d48269d9ab2b4ff5d4c69826c3c9cStatus: Downloaded newer image for httpd:latestdocker.
34、io/library/httpd:latestrootCentOS8-1 # docker images httpdREPOSITORY TAG IMAGE ID CREATED SIZEhttpd latest 73b8cfec1155 8 days ago 138MB项目十Docker的配置与管理 工序2. Docker环境下搭建WWW服务器创建、启动并查看容器3rootCentOS8-1 # docker run -itd -name apache -p 8080:80 -v /www/html:/usr/local/apache2/htdocs httpd/从本地镜像从本地镜像http
35、d上创建并启动名为上创建并启动名为apache的容器,使其在后台运行,保持打开并分配一个伪终端,同时的容器,使其在后台运行,保持打开并分配一个伪终端,同时设置宿主机的设置宿主机的8080端口与容器的端口与容器的80端口间的映射关系,并将宿主机的目录端口间的映射关系,并将宿主机的目录/www/html和容器的目录和容器的目录/usr/local/apache2/htdocs绑定绑定rootCentOS8-1 # docker ps -a /查看容器的运行状态查看容器的运行状态CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES731073ca
36、b102 httpd httpd-foreground 3 minutes ago Up 2 minutes 0.0.0.0:8080-80/tcp apache小提示:在做宿主机和容器间目录的绑定时,如果目录不存在会自动创建相应的目录。在此例中绑定的宿主机的目录为自动创建,而容器的目录/usr/local/apache2/htdocs为网站站点的主目录。项目十Docker的配置与管理 工序2. Docker环境下搭建WWW服务器WWW服务器测试3rootCentOS8-1 # vim /www/html/index.html /在宿主机目录在宿主机目录/www/html下新建首页文件,下新建
37、首页文件,Welcome!rootCentOS8-2 # curl 192.168.1.1:8080 /在在CentOS8-2上输入相应的命令和网址后就可以上输入相应的命令和网址后就可以 Welcome! 成功访问网站首页文件成功访问网站首页文件 项目十Docker的配置与管理 工序3. Docker环境下搭建FTP服务器镜像仓库中获取centos镜像3rootCentOS8-1 # docker pull centos由于在镜像仓库中没有官方创建的vsftpd镜像,所以此例首先获取centos镜像,然后在此基础上搭建FTP服务器项目十Docker的配置与管理 工序3. Docker环境下搭建
38、FTP服务器创建、启动、查看并进入容器3rootCentOS8-1 # docker run -itd -name vsftpd -privileged -v /ftp:/var/ftp -network=host -h test centos /usr/sbin/initrootCentOS8-1 # docker ps -aCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES487c64fa455b centos /usr/sbin/init 39 seconds ago Up 38 seconds vsftpdrootCentOS8-
39、1 # docker exec -it vsftpd /bin/bash /进入名称为进入名称为vsftpd的容器的容器roottest /#从本地镜像centos上创建并启动名称为vsftpd的容器,使其在后台运行,保持打开并分配一个伪终端,同时设置容器内的主机名为test,并将宿主机的目录/ftp和容器的目录/var/ftp绑定,开启容器的特权模式,网络模式为主机模式项目十Docker的配置与管理 工序3. Docker环境下搭建FTP服务器在容器内搭建FTP服务器3roottest /# dnf install -y vsftpdroottest /# systemctl start v
40、sftpdroottest /# systemctl enable vsftpd安装并启动vsftpd服务编辑vsfptd主配置文件roottest /# vi /etc/vsftpd/vsftpd.confanonymous_enable=YES /允许匿名用户访问允许匿名用户访问anon_upload_enable=YES /开启匿名用户的上传开启匿名用户的上传anon_world_readable_only=YES /开启匿名用户浏览开启匿名用户浏览anon_mkdir_write_enable=YES /创建目录创建目录anon_other_write_enable=YES /其他写入
41、权限其他写入权限项目十Docker的配置与管理 工序3. Docker环境下搭建FTP服务器在容器内搭建FTP服务器3roottest /# dnf install -y vsftpdroottest /# systemctl start vsftpdroottest /# systemctl enable vsftpd安装并启动vsftpd服务编辑vsfptd主配置文件roottest /# vi /etc/vsftpd/vsftpd.confanonymous_enable=YES /允许匿名用户访问允许匿名用户访问anon_upload_enable=YES /开启匿名用户的上传开启匿名
42、用户的上传anon_world_readable_only=YES /开启匿名用户浏览开启匿名用户浏览anon_mkdir_write_enable=YES /创建目录创建目录anon_other_write_enable=YES /其他写入权限其他写入权限项目十Docker的配置与管理 工序3. Docker环境下搭建FTP服务器配置宿主机3rootCentOS8-1 # chmod 777 /ftp/pub/将宿主机上的目录将宿主机上的目录/ftp/pub的权限设置为的权限设置为777,绑定的容器上的目录,绑定的容器上的目录/var/ftp/pub会同会同步此操作步此操作配置FTP主目录的
43、权限重启容器和配置防火墙规则rootCentOS8-2 #docker restart vsftpd /重启名称为重启名称为vsftpd的容器的容器rootCentOS8-2 # firewall-cmd -permanent -add-service=ftprootCentOS8-2 # firewall-cmd -reload项目十Docker的配置与管理 工序3. Docker环境下搭建FTP服务器测试FTP服务器3rootCentOS8-2 # dnf install -y ftp /安装安装FTP客户端工具客户端工具rootCentOS8-2 # ftp 192.168.1.1 /使
44、用匿名用户登录到使用匿名用户登录到FTP服务器中服务器中Connected to 192.168.1.1 (192.168.1.1).220 (vsFTPd 3.0.3)Name (192.168.1.1:root): ftp331 Please specify the password.Password:230 Login successful.Remote system type is UNIX.Using binary mode to transfer files.ftp /对其进行浏览、上传、下载、新建目录和修改文件名等操作对其进行浏览、上传、下载、新建目录和修改文件名等操作项目十Do
45、cker的配置与管理 工序4. Docker的安全配置使用强制访问控制策略3rootCentOS8-1 # docker run -interactive -tty -security-opt=apparmor:PROFILENAME centos /bin/bash /启用启用AppAamor功能:功能:启用强制访问控制(Mandatory Access Control (MAC)),根据业务场景的具体分析,对Docker中使用的各种资源设置访问控制启用SElinux功能:rootCentOS8-1 # docker daemon -selinux-enabled项目十Docker的配置与管理 工序4. Docker的安全配置不要使用root用户运行docker应用程序3RUN useradd noroot -u 1000 -s /bin/bash -no-create-homeUSER norootRUN Application_name在软件使用中,有一些必须由root用户才能够进行的操作。但从安全角度,您需要将这一部分操作与仅使用普通用户权限即可执行的操作分离解耦。在编写dockerfile时,您可以使用类似如下的命令创建一个普通权限用户,并设置创建的UID为以后运行程序的用户。项目十Docker的配置与管理