41、Linux 服务器邮件过滤与安全防护指南
2025/12/17 16:30:04
# 从 Docker Hub 拉取一个镜像 docker pull nginx:latest # 查看本地所有镜像 docker images # 删除一个本地镜像 docker rmi nginx:latest # 构建一个自定义镜像 (需要 Dockerfile) docker build -t my-custom-app:v1.0 .# 运行一个容器 # -d: 后台运行 # -p 8080:80: 将宿主机的 8080 端口映射到容器的 80 端口 # --name my-nginx: 给容器起个名字 # nginx:latest: 使用的镜像 docker run -d -p 8080:80 --name my-nginx nginx:latest # 查看正在运行的容器 docker ps # 查看所有容器(包括已停止的) docker ps -a # 停止一个容器 docker stop my-nginx # 启动一个已停止的容器 docker start my-nginx # 重启一个容器 docker restart my-nginx # 删除一个容器 (必须先停止) docker rm my-nginx # 强制删除一个正在运行的容器 (不推荐) docker rm -f my-nginx# 查看容器的标准输出日志 docker logs my-nginx # 实时跟踪容器日志 docker logs -f my-nginx # 进入一个正在运行的容器的内部 shell docker exec -it my-nginx /bin/bash # -i: 交互式操作 # -t: 分配一个伪终端# 1. 基础镜像:从官方 Node.js 18 的 Alpine 版本开始 FROM node:18-alpine # 2. 设置工作目录 WORKDIR /app # 3. 复制 package.json 和 package-lock.json (如果有的话) # 这一步利用了 Docker 的层缓存,只有当这两个文件变化时才会重新安装依赖 COPY package*.json ./ # 4. 安装项目依赖 RUN npm install # 5. 复制项目所有源代码到工作目录 COPY . . # 6. 暴露应用端口 EXPOSE 3000 # 7. 定义容器启动时执行的命令 CMD [ "node", "server.js" ]# -t: 给镜像打标签 (名称:版本) # .: 表示构建上下文是当前目录 docker build -t my-node-app:v1.0 .数据卷是什么?
数据卷是Docker专门用来持久化和共享数据的一种特殊机制。容器本身是无状态和临时的,数据卷是为了解决删除一个容器时,避免部分文件被一起删除。
mkdir ~/nginx-html cd /nginx-html/ touch index.htmldocker run -d -p 8123:80 \ --name mynginx-vol \ -v /root/ngnix-html:/usr/share/nginx/html:ro,Z \ nginx访问ip:8123端口