首页 > 系统相关 >docker基础:搭建centos7(详见B站泷羽sec)

docker基础:搭建centos7(详见B站泷羽sec)

时间:2024-11-15 18:46:21浏览次数:3  
标签:容器 sudo 8080 httpd 宿主机 centos7 sec docker

docker的简单学习:

sudo apt-get update                //这个命令让系统检查有没有新软件

sudo apt-get install docker.io        //安装 Docker

sudo docker version                        //查看是否安装成功,显示docker的版本信息

启用Docker

启动成功后,没有错误信息输出。

可以使用 sudo docker ps 命令来验证 Docker 是否正常启动。

sudo service docker start

sudo docker ps

将docker改为国内的源

vim /etc/docker/daemon.json

然后将以下源复制进去即可

{

    "registry-mirrors": [

            "https://5tqw56kt.mirror.aliyuncs.com",

            "https://docker.hpcloud.cloud",

                   "https://docker.m.daocloud.io",

            "https://docker.1panel.live",

            "USTC Open Source Software Mirror",    

            "https://docker.chenby.cn",

            "https://docker.ckyl.me",

                   "Mirror site",

            "https://hub.rat.dev"

]

}

保存并退出

让docker守护进程重新加载配置文件

sudo systemctl daemon-reload

重启docker服务

sudo systemctl restart docker

拉取centos7官方docker的镜像:

sudo docker pull centos:7

 

 

运行一个基于CentOS 7镜像的容器:

sudo docker run -it --name my_centos7 centos:7 /bin/bash

sudo docker run -d --name my_centos7 centos:7 /bin/bash

两命令都会创建, exit 退出后仍然存在,可使用 docker ps -a 进行查看

在这个命令中:

-it 选项允许你交互式地运行容器,会占用终端。OR或者 -d 选项(Detached,分离

模式),容器就会在后台启动并运行,不会占用当前终端

--name my_centos7 给容器命名为my_centos7。

执行上述命令后,你会进入到一个新的CentOS 7容器中,可以在这个环境中执行

CentOS 7系统的命令。

centos:7 指定使用的镜像。

/bin/bash 启动容器后执行的命令,这里启动了bash让你能与容器交互。

 

创建apache容器后台运行

docker container run -d --rm -p 8080:80 httpd

 

当没有下载镜像直接启动时,会先下载对应的镜像

命令解释:

docker container run:这是启动一个新容器的命令。

-d:表示以守护进程(detached)模式运行容器,即容器在后台运行,不会占用当前终端。

--rm:当容器停止运行时,自动删除容器。

-p 8080:80:将主机的 8080 端口映射到容器内的 80 端口。这样,外部可以通过访问主机的 8080 端口来访问容器内运行的80端口服务。

 

安装成功:

挂载宿主机目录

docker container run -d --rm -p 8080:80 -v

/home/user/webroot/:/usr/local/apache2/htdocs/ httpd

-d 参数

功能 :表示以 “分离(detached)” 模式运行容器。

含义和作用 :当容器以这种模式启动后,它会在后台运行,不会占用当前的

命令行终端。这使得你可以在启动容器后,继续在终端中执行其他任务,比

如启动其他容器、检查容器状态或者运行其他系统命令等。例如,你可以在

启动这个 httpd 容器后,马上使用 docker ps 命令查看容器是否已经成功

启动并在后台运行。

--rm 参数

功能 :设置容器在退出时自动删除。

含义和作用 :一旦容器内的任务完成或者因为某种原因(如发生错误、手动

停止等)停止运行,Docker 会自动删除这个容器。这有助于保持 Docker 环境

的整洁,避免大量无用的容器占用磁盘空间。特别是在临时测试或者短期运

行容器的场景下非常有用,比如你只是想快速测试一下 httpd 服务器的配

置,使用完后容器自动删除,不需要手动清理。

-p 8080:80 参数

功能 :进行端口映射。

含义和作用 :左边的 8080 是宿主机(运行 Docker 的物理机或虚拟机)上

的端口,右边的 80 是容器内 httpd 服务器默认监听的端口。通过这种映

射,外部客户端(如浏览器)访问宿主机的 8080 端口时,请求会被转发到

容器内 httpd 服务器监听的 80 端口。这就使得你可以通过宿主机的 8080

端口来访问容器内 httpd 服务器提供的网页服务。例如,在浏览器中输入宿

主机的 IP 地址加上 8080 端口(如 http://[宿主机IP]:8080 ),就可以访

问容器内 httpd 服务器上的网页。

-v /home/user/webroot/:/usr/local/apache2/htdocs/ 参数

功能 :进行目录挂载。

含义和作用 :左边的 /home/user/webroot/ 是宿主机上的一个目录,右边

的 /usr/local/apache2/htdocs/ 是容器内 httpd 服务器存放网页文档的

默认目录。通过这种挂载,将宿主机上的目录挂载到容器内相应的目录。这

样做有很多好处,一是方便在宿主机上直接对要提供给 httpd 服务器的网页

文档进行编辑、更新等操作。例如,你在宿主机的 /home/user/webroot/

目录下新建一个 index.html 文件,容器内的 httpd 服务器就能直接使用

这个文件来提供网页服务。二是实现了数据的持久化和共享,即使容器重新

启动或者被删除后重新创建,只要宿主机上挂载的目录中的数据没有丢失,

容器内的 httpd 服务器就可以继续使用这些数据来提供网页服务。

httpd 部分

功能 :指定要运行的容器所基于的镜像名称。

含义和作用 : httpd 是一个常用的用于搭建 Apache HTTP 服务器的镜像。

通过运行基于这个镜像的容器,容器内部会启动 httpd 服务器,从而能够对

外提供网页服务。当容器启动后, httpd 服务器会根据容器内的配置和挂载

的网页文档目录来提供相应的网页内容

侦听宿主机80端口

docker container run -d --rm --network host -v

/home/user/webroot/:/usr/local/apache2/htdocs/ httpd

--network host 参数

功能:

将容器的网络模式设置为 “host” 模式。

含义和作用:

在这种模式下,容器会直接使用宿主机的网络栈。容器内的网络接口和端

口将直接与宿主机相同,不再进行端口映射操作。例如,容器内 httpd

服务器监听的 80 端口,将直接在宿主机的 80 端口上进行监听。这对于

一些需要直接使用宿主机网络资源或者需要避免网络地址转换(NAT)带

来的复杂性的应用场景很有用。不过,这种模式也有一定的风险,因为容

器内的服务将直接暴露在宿主机网络上,可能会增加安全风险。

 

标签:容器,sudo,8080,httpd,宿主机,centos7,sec,docker
From: https://blog.csdn.net/weixin_43433141/article/details/143691060

相关文章

  • 泷羽sec-shell脚本创建执行与变量使用
    shell脚本创建vimxx.sh可以利用#!/bin/bash、#!/bin/dash、#!/bin/sh这三种其实不管用哪种脚本解释器最后调用的还是这个dash比如ls-lbin/sh发现调用的还是dash执行方法一./xx.sh #默认没有执行权限chmod+xxx.sh方法二shxx.shbashxx.shdashxx.sh......
  • Docker不再神秘 ------Ubuntu20.04 安装Docker 及实用技巧,建议收藏
    Dockerdocker是一种容器,简而言之就是别人把一堆环境配置好了,你可以下载下来直接拿来使用(我的个人理解),有点像虚拟机你知道吧。比如下面这样,我直接打开了一个小电脑(docker),里面桌面啊、root啊全都有,跟你ubuntu系统类似,单说细节还不完全一样,毕竟它轻便哈哈……也有一些对比这下......
  • spring boot security
    1.这里面安装这个 2.跑起来发现,给了我们一个密码 3.我们直接访问本地的localhost:8080/login,默认用户名是user 4.这里设置默认的账号密码 5.我们新建一个security文件夹,DemoSecurityConfig类packagecom.example18.example_18.security;importorg.springfra......
  • Docker环境搭建CUDA12.2 + Yolov5 7.0 GPU训练环境(单卡训练)
    1、建立Docker容器,指定Shm共享内存。dockerrun-d-it--nameyolov5--gpusall-p20000:22--shm-size16gdockerproxy.cn/nvidia/cuda:12.2.0-devel-ubuntu22.042、进入容器,升级安装器aptdockerexec-itf7383b766c6d/bin/bashapt-getupdateapt-getinstallvim3......
  • 记一次react+node+nginx+mysql+docker发布
    简言这是为了给老婆工作上算培训班课时,计算课销更方便点的CRM(纸质档转线上)准备工作React项目Node项目(express,koa任意选择)一台服务器(如果你是纯手工发布,服务器选择倒是无所谓,如果要结合docker的话,请选择国外服务器或者香港也行,阿里云就算了,我自己最开始用的阿里云,docker根本p......
  • 主机和Docker容器之间的文件互传方法
    Docker渐渐成为前端的一个工具,它像一个通用包装,可以把各种环境包裹其中,从而实现跨设备的兼容。使用的过程中,往往会需要将本地的文件和docker容器内部的文件互传:将主机的文件传递给容器内,让里面的工具读写;将容器内的文件拷贝出来,修改了再传入...一、主机到Docker容器/镜像的文......
  • 一种实现docker容器嵌套的方法
    【背景】   有个用户需要在docker容器中再运行一个容器,实现容器嵌套,研究了下,可以这样来实现。 【方法】1.在系统上先安装一个docker服务,我的版本是20.10.17[root@testkvm~]#rpm-qa|grepdockerdocker-ce-20.10.17-3.el7.x86_64docker-ce-cli-20.10.17-3.el7.......
  • dockerfile中cmd和entrypoint的区别
    cmd语法TheCMDinstructionhasthreeforms:CMD["executable","param1","param2"](execform,thisisthepreferredform)CMD["param1","param2"](asdefaultparameterstoENTRYPOINT)CMDcommandparam1par......
  • 5分钟上手 Docker:镜像优化
    Docker是一种流行的容器化技术,它允许开发者将应用程序及其所有依赖打包成一个标准化的单元——镜像。优化Docker镜像不仅能减小镜像的体积,提高下载和部署速度,还能增强安全性。在本文中,我们将介绍一些镜像优化的技巧,帮助你在5分钟内快速上手Docker镜像的优化。1.使用合适......
  • 搭建本地docker私服库
    1、本地镜像发布到私有库1.1、Docker Registry是什么1官方DockerHub地址:https://hub.docker.com/,中国大陆访问太慢了且准备被阿里云取代的趋势,不太主流。2Dockerhub、阿里云这样的公共镜像仓库可能不太方便,涉及机密的公司不可能提供镜像给公网,所以需要创建一个本地私人......