ubuntu2404 docker安装和开发环境配置

在~/目录新建ubuntu2404 目录并进入:

mkdir ubuntu2404 && cd ubuntu2404

编辑dockerfile文件:

FROM ubuntu:24.04

ENV DEBIAN_FRONTEND=noninteractive

RUN apt update && apt install -y \
    curl wget git vim nano unzip gnupg2 ca-certificates \
    lsb-release software-properties-common

# 添加 PHP PPA 并安装 PHP 8.2 核心
RUN add-apt-repository ppa:ondrej/php -y && \
    apt update && apt install -y php8.2 php8.2-fpm php8.2-cli

# 安装 nginx
RUN apt install -y nginx

RUN apt clean && rm -rf /var/lib/apt/lists/*

RUN mkdir -p /workspace
WORKDIR /workspace

CMD ["/bin/bash"]

编辑docker-compose.yml文件(方便容器挂载宿主机目录)

services:
  ubuntu2404:                                  # 定义服务名为 ubuntu2404
    build: .                                   # 使用当前目录的 Dockerfile 构建镜像
    image: ubuntu2404                          # 设置镜像名
    container_name: ubuntu2404                 # 容器名称为 ubuntu2404,方便管理
    user: "1000:1000"                          # 容器内运行用户的uid和gid
    volumes:
      - ./code:/workspace                                 # 宿主机 ./code 目录挂载到容器 /workspace
      - ./code/nginx/conf.d:/etc/nginx/conf.d             # 挂载nginx站点配置文件
      - ./code/php/php82/php.ini:/etc/php/8.2/cli/php.ini # 挂载php站点配置文件
    ports:
      - "80:80"                                # 宿主机80端口映射到容器80端口(nginx默认端口)
      - "9000:9000"                            # 宿主机9000端口映射到容器9000端口(php-fpm默认端口)
    stdin_open: true                           # 保持STDIN打开,方便交互操作
    tty: true                                  # 分配伪终端,支持终端颜色和交互

修改docker-compose.yml文件后重构容器

# 停止并删除 当前目录下由该 docker-compose.yml 管理的所有容器、网络和默认卷
docker compose down
# 重新启动容器并生效挂载目录
docker compose up -d

构建镜像并启动容器(基于docker-compose.yml文件

# 加上 -d 参数,让容器在后台运行(detached mode)
docker compose up -d --build

docker compose up	    # 启动容器,不重建镜像(除非镜像不存在)
docker compose build	    # 单独构建镜像,不启动容器
docker compose up --build   # 构建镜像 并 启动容器(推荐用于开发)

构建镜像(build)(基于dockerfile文件)

docker build -t ubuntu2404 .

启动容器

# 容器启动后,会进入交互式终端(bash)
docker run -it --name ubuntu2404 -p 80:80 ubuntu2404

进入和退出容器

# 进入
docker exec -it ubuntu2404 bash
# 使用root用户进入
docker exec -it -u root ubuntu2404 bash
# 退出
ctrl + P + Q
# 或(运行时加-d参数的情况下,docker会在后台运行, ctrl + D不会使容器停止)
ctrl + D

删除容器和镜像

#查看容器名或ID
docker ps -a
# 停止容器
docker stop 容器名或ID
# 删除容器
docker rm 容器名或ID
# 查看镜像
docker images
# 删除镜像
docker rmi 镜像ID
# 删除所有没有被容器使用的镜像
docker image prune -a

删除未使用的镜像、容器、网络、缓存

# 会清理:停止的容器,未打 tag 的镜像,未使用的网络,构建缓存
docker system prune
# 加 -a 会删除所有未使用的镜像(慎用)
docker system prune -a

安装php常用扩展

# 安装pdo_mysql
apt update && apt install -y php8.2-mysql
# 安装完了重启php
service php8.2-fpm restart

其他

# 启动nginx
nginx
# 启动php
php-fpm8.2
# 重启nginx
nginx -s reload
上一篇
下一篇