如何在Docker容器中运行Apache服务器
发布网友
发布时间:2022-02-26 22:37
我来回答
共1个回答
热心网友
时间:2022-02-27 00:06
步骤1:为我们的容器创建第一个镜像
# 以 centos 镜像作为基础镜像,我们启动自己的容器并在其中执行/bin/bash命令
# 注:-t -i 参数用于创建一个虚拟的命令行。
sudo docker run -t -i centos /bin/bash
现在我们已经成功的运行了自己的第一个容器,并且进入到容器的命令行界面中。在容器中,我们执行下面的命令:
yum -y update # 更新软件包
yum install which # 安装which命令
yum install git # 安装Git
安装完成后,按 Ctrl + d 来退出容器的命令行。
# 执行sudo docker ps -a,可以看到被我们终止的容器
CONTAINER ID IMAGE COMMAND CREATED……
da9031d3568f centos:6.4 /bin/bash 5 minutes ago…..
把我们所做的改变提交到一个新的容器:
# 这里我们创建一个自己的基础容器,容器中安装好了文章中所需的常用工具。读者的容器 id 可能与文章中的有所不同,以上一步 docker ps -a 的结果为准。
sudo docker commit da90 custom/base
容器成功提交后,执行 sudo docker images ,我们会看到刚才提交的容器(如下面的结果所示)。我们就以这个容器为基础容器,再来创建一个新的容器。
REPOSITORY TAG IMAGE ID CREATED
custom/base latest 05b6cecd370b 2 minutes ago
centos 6.4 539c0211cd76 10 months ago
centos latest 539c0211cd76 10 months ago…
步骤2:创建新的容器,并安装 apache
# 以 custom/base 容器为基础,运行一个新的容器。
sudo docker run -t -i custom/base /bin/bash
# 安装 httpd
yum install httpd
步骤3:再次提交新的容器
按 Ctrl + d 来退出容器的命令行,然后执行命令:
# 这个命令会把步骤2中我们安装 httpd 带来的改变提交到新的名为 custom/httpd 的容器镜像中。你的容器 id 可能会和文章中有所不同,以 sudo docker ps -a 命令的结果为准。
sudo docker commit aa6e2fc0b94c custom/httpd
你应该已经发现了,我们创建了一个带有 http 服务器并可以复用的容器镜像。你可以根据这种思想,为自己所需的每个组件都创建一个容器,然后把这些容器复用于开发环境或者生产环境。
步骤7:运行 http 服务器
# -v will Mount a volume from VM to the container which was also shared from host to Vagrant VM.
# -v 参数把主机共享给虚拟机的一个卷挂载到容器中
# -p forward VM port 80 to container port 80; VM port 80 is mapped to host port 8080 in Vagrantfile
# -p 参数把虚拟机的80端口映射到容器的80端口;虚拟机的80端口在 Vagrantfile 中被绑定到主机的8080端口,也就是:主机8080->虚拟机80->容器80
sudo docker run -t -i -p 80:80 -v /vagrant/htdocs:/var/www/html custom/httpd /bin/bash
# 启动 Apache
apachectl -k start
如何在 Docker 上运行 Elasticsearch 8.x 进行本地开发
上面演示的Elasticsearch和Kibana容器的docker-compose.yaml文件如下。设置与直接启动Docker容器相同。我们先使用CTRL+C来停止上面运行的容器。我们创建如下的docker-compose.yml文件:docker-compose.yml 可以看到,我们可以在同一个文件中管理网络、volume和容器,超级方便。请记住在使用此docker-compose.yaml文件...
如何在docker中运行Elasticsearch
在Docker中运行Elasticsearch的步骤如下:首先,确保你的Java环境和Docker中的Elasticsearch版本匹配,因为版本不一致可能导致错误。为了防止数据丢失,建议在本地持久化ES数据,我将其保存在$(pwd)/esdata目录下,通过-v挂载参数 "-v $(pwd)/esdata:/usr/share/elasticsearch/data" 实现。使用Docker拉取7...
如何交互式地创建一个Docker容器
Docker首先会尝试从本地取得并运行所需的镜像,如果在本地主机上没有发现,它就会从Docker公共注册中心拉取。这里,我们将会拉取镜像并在 Docker 容器中创建一个fedora实例,并连接到它的 tty 上的bash shell。docker run -i -t fedora bash 2.安装Apache网络服务器 现在,在我们的Fedora基本镜像实例...
Apache HTTP Server 2.4.49 路径穿越漏洞
启动并设置Docker开机自启动,使用阿里云Docker镜像加速器以提升pull速度。创建Docker配置文件daemon.json并设置镜像仓库地址为阿里云。使用Docker Compose编译及运行Apache HTTPd 2.4.49版本服务器,执行命令进行部署。部署完成后,通过浏览器访问Apache服务器并验证其正常运行。接下来,进行漏洞复现:尝试任意文件...
如何在docker容器中运行grafana?
为了在Docker容器中运行Grafana,首先创建一个专用网络,通常对应于业务网络。接下来,部署Prometheus。下载Prometheus镜像,检查其详细信息,然后启动Prometheus容器,确保端口和网络配置正确。验证Prometheus,通过EIP:9090访问Prometheus页面。如果发现无法访问Endpoint,可能需要修改配置文件中的targets值,将其更改为...
如何在 Docker 容器中运行 Kali Linux 2.0
kali linux docker 容器(这里需用正确的镜像ID替换)。docker run -i -t 198cd6df71ab3/bin/bash 它会立刻启动容器并且让你登录到该操作系统,你现在可以在 Kaili Linux 中工作了。Kali Linux Login 你可以在容器外面通过下面的命令来验证容器已经启动/运行中了:docker ps ...
如何在Docker容器中运行Metasploit
1. 安装 Docker 在开始前,我们首先得确保在Linux主机中已经安装了Docker。这里,我运行的是CentOS 7 主机,我们将运行yum管理器和下面的命令来安装Docker。 # yum install docker # systemctl restart docker.service 2. 创建 Dockerfile 现在...
Docker安全性――Docker容器真的安全吗
如果你相信,我这样做, - 意思视为运行Apache你把Apache服务的系统上运行的方式相同容器中Docker的容器应被视为“容器服务”,这意味着你会做以下几点:?尽快删除权限 ?尽量以非root运行您服务 ?容器内招待root,就好像它是root容器的之外 目前,我们正在告知人们在1般条件到1个容器内处理权限的进程...
为什么不需要在 Docker 容器中运行 sshd
可能你还没有理解docker的概念,他是容器,不是一个系统,不必非要有sshd服务来进行用户登录。我只要满足我需求的container就可以了。比如我只想要一个运行java环境的docker,那么这个docker只要可以运行java代码就可以了,其他的服务根本就不需要。
pycharm如何连接远程服务器的docker容器进行运行和调试代码(一)_百度...
第一步是启动并运行一个交互式容器,通过端口映射,如将主机的8080端口映射到容器的22端口。然后,进入容器内,修改root用户的密码并安装openssh-server和openssh-client。如果遇到源列表过时的问题,需要更新源并重新配置SSH服务。接下来,重启ssh服务并退出容器,测试连接。在服务器上运行命令,使用root权限...