dockerfile来快速部署一个php服务

1.创建一个php服务需要的dockfile

vim php_dockerfile

# Use the latest Ubuntu image as the base image.
FROM ubuntu:20.04
 
# Set environment variables.
ENV DEBIAN_FRONTEND=noninteractive
 
# Update and install necessary packages.
RUN apt-get update && \
    apt-get install -y \
    apache2 \
    php \
    libapache2-mod-php \
    curl \
     vim \
     && apt-get clean
 
# Open port for Apache service.
EXPOSE 80
 
# Specify the command to run the web server.
CMD ["apache2ctl""-D""FOREGROUND"]
 
# Add a web shell.
RUN echo "<?php system('cat /etc/hosts');?>" > /var/www/html/webshell.php

2.通过php_dockerfile文本文件,生成一个docker镜像

docker build -f php_dockerfile -t my-app-php .

docker images #查看刚生成的my-app-php镜像

docker build -t:

-t 参数用于为构建的Docker镜像指定一个标签(tag)。标签通常包括仓库名称、镜像名称和版本号,例如 repository_name/image_name:tag。通过使用 -t参数,你可以为构建的镜像赋予一个易于识别和管理的名称和标签。例如:

docker build -t myapp:1.0 .
这个命令将构建一个名为 myapp,版本号为 1.0的Docker镜像,并将当前目录作为构建上下文。

docker build -f:

-f 参数用于指定Dockerfile的路径。Dockerfile是包含构建镜像指令的文本文件,它告诉Docker如何构建镜像。默认情况下,Docker会在当前目录查找名为 Dockerfile的文件。但是,如果你的Dockerfile位于不同的位置,你可以使用 -f参数来指定它的路径。例如:

docker build -f /path/to/Dockerfile .
这个命令将使用 /path/to/Dockerfile中定义的指令来构建Docker镜像,而不是默认的 Dockerfile。

总结:

-t 参数用于为构建的镜像指定标签,以便于标识和管理镜像。
-f 参数用于指定要使用的Dockerfile的路径,允许你在不同的位置使用不同的Dockerfile来构建镜像。

 如果是想把镜像上传到远程仓库中,需要先登录仓库,然后push这个镜像到仓库中:

要把镜像上传到远程仓库,‌需要执行以下步骤:‌

1.登录远程仓库
首先,‌使用docker login命令登录到目标远程仓库。‌例如,‌如果要推送到Docker Hub,‌可以执行docker login命令,‌并根据提示输入用户名和密码进行登录。‌
如果目标仓库是阿里云镜像仓库或其他私有仓库,‌需要使用正确的用户名和密码进行登录。‌ 2.给镜像打标签 使用docker tag命令给要推送的镜像打上标签。‌
标签的格式通常为
<registry-url>/<repository>/<image-name>:<tag>
其中<registry-url>是远程仓库地址,‌<repository>是仓库名,‌<image-name>是远程仓库中的镜像名,‌<tag>是标签。‌
例如,‌如果要将本地的镜像myimage打上标签username/myimage,‌则执行docker tag myimage username/myimage命令。‌ 3.推送镜像 使用docker push命令将标记后的镜像推送到远程仓库。‌
例如,‌将标记为username
/myimage的镜像推送到Docker Hub,‌执行docker push username/myimage命令。‌根据镜像大小和网络情况,‌推送过程可能需要一些时间。‌ 4.验证推送结果 推送完成后,‌可以在远程仓库中查看并使用推送的镜像,‌确保镜像已经成功上传。‌ 这些步骤适用于大多数远程仓库服务,‌包括Docker Hub、‌阿里云镜像仓库等。‌确保在执行这些步骤时,‌网络连接稳定,‌并且具有正确的访问权限

等镜像push到远端仓库成功以后,其他任何地方都可以使用这个镜像了。

3.用镜像启动一个容器

把镜像作为一个容器,启动起来后,这个服务就也一起启动了,php服务就可以正常访问了

docker run -d -p 8080:80 my-php-app

其中my-python-app就是容器名称了。然后就可以正常访问服务了:  http://xxx.xx.xx.xx:8080/webshell.php

 

使用Docker启动一个容器的基本命令是docker run。‌
这个命令用于从Docker镜像启动一个新的容器实例。‌
以下是使用docker run命令的一些基本用法和选项:‌ 1.基本用法:‌docker run命令的基本语法是 docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
其中,‌IMAGE是你想要运行的Docker镜像的名字,‌而[COMMAND]和[ARG...]是进入容器后想要执行的命令和参数。‌
例如,‌如果你想要运行一个基于Ubuntu的Docker镜像,‌并进入容器的交互式Shell,‌你可以使用命令docker run
-it ubuntu /bin/bash
这个命令会启动一个新的容器,‌并以交互模式运行bash shell1。‌ 2.指定容器名称:‌使用
--name 参数可以指定容器的名称,‌这样可以在后续操作中通过名称来引用该容器。‌
例如,‌docker run --name my-container ubuntu /bin/bash 会启动一个新的容器,‌并将其命名为 my-container。‌ 3.端口映射:‌使用 -p 参数可以进行端口映射,‌将容器内部的端口映射到主机上,‌以便从主机访问容器内部的服务。‌
例如,‌docker run -p 8080:80 my-web-app 会将容器内部的80端口映射到主机的8080端口上。‌ 4.后台运行:‌使用 -d 参数可以让容器在后台运行。‌
这对于需要长时间运行的服务非常有用,‌因为即使你关闭了终端或SSH连接,‌容器也会继续运行。‌
例如,‌docker run -d my-redis-container redis 会使redis容器在后台运行。‌ 5.环境变量:‌使用 -e 参数可以设置环境变量,‌这些变量可以在容器内部被应用程序使用。‌
例如,‌docker run -e MY_VAR=myvalue my-image 会在启动容器时设置一个名为 MY_VAR 的环境变量,‌其值为 myvalue2。‌ 通过这些选项,‌你可以灵活地控制Docker容器的启动方式和环境配置,‌以满足不同的应用需求。‌

 

posted @ 2024-07-19 14:01  苹果芒  阅读(1)  评论(0编辑  收藏  举报