侧边栏壁纸

docker使用教程

2024年11月23日 536阅读 0评论 1点赞

OIP-C.jpg

安装 Docker

使用 yum 安装(适用于centos7)

sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install docker-ce docker-ce-cli containerd.io

设置开机自启动

sudo systemctl enable docker

启动 Docker

sudo systemctl start docker

测试 Docker 是否安装正确

docker run hello-world

配置镜像加速

教程地址:毫秒镜像

Docker 基础命令

镜像常用命令

  • 搜索镜像

    docker search nginx --limit 3
  • 下载镜像 [重要]

    docker pull nginx
  • 列出镜像 [重要]

    docker images
  • 删除本地镜像 [重要]

    phpdocker rmi <镜像id或镜像仓库名>
  • 构建镜像 [重要]

    docker build .

容器常用命令

  • 新建并启动容器 [重要]

    docker run
      -d # 后台运行
      -p # 指定端口映射
      -P # 随机端口

    示例:

    docker run -d -p 8080:80 --name my-nginx nginx
  • 列出容器 [重要]

    • 列出运行中的容器:

      docker ps
    • 列出所有的容器:

      docker ps -a
  • 进入容器 [重要]

    docker exec -it <容器id> /bin/bash

    示例:进入 Nginx 容器内部,找到 Nginx 首页文件。

  • 停止容器 [重要]

    docker stop <容器id>
  • 启动已停止的容器 [重要]

    docker start <容器id>
  • 重启容器 [重要]

    docker restart <容器id>
  • 强制停止容器 [重要]

    docker kill <容器id>
  • 删除容器 [重要]

    docker rm <容器id>

批量操作命令

  • 列出所有的容器 ID

    docker ps -aq
  • 停止所有的容器

    docker stop $(docker ps -aq)
  • 删除所有的容器

    docker rm $(docker ps -aq)
  • 删除所有的镜像

    docker rmi $(docker images -q)

Docker 操作案例

Flask 项目打包镜像

  1. 安装flask

    pip install Flask
  2. 新建app.py,输入如下代码

    from flask import Flask
    
    
    app = Flask(__name__)
    
    
    @app.route('/')
    def home():
        return '服务器部署成功'
    
    @app.route('/yi/2',methods=['GET','POST'])
    def main():
        pass
    
    if __name__ == '__main__':
        # 设置 debug=True 方便开发时调试
        app.run(port=5000,host='0.0.0.0')
  3. 上传 dist 文件夹

    使用 SSH 工具将app及其根目录下的代码传到服务器。

  4. 创建并编辑 Dockerfile

    /root/vue3 目录下创建 Dockerfile 文件:

    # 使用官方 Python 3.9 镜像
    FROM python:3.9-slim
    
    # 设置工作目录
    WORKDIR /
    
    # 复制依赖文件
    COPY ./requirements.txt /requirements.txt
    
    # 修改 pip 源为清华源并安装依赖
    RUN pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple && \
        pip install --no-cache-dir -r requirements.txt
    
    # 设置时区
    ENV TZ=Asia/Shanghai
    RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
    
    # 复制整个项目到容器
    COPY . /
    
    # 使用 python 启动服务
    CMD ["python", "app.py"]
  5. 创建 requirements.txt 配置文件

    在 app.py 同级目录目录下创建 requirements.txt 文件,存放python的配置文件:

    requests~=2.32.3
    ddddocr~=1.5.5
    numpy~=2.0.2
    flask~=3.1.0
    PyExecJS2~=1.6.1
    curl-cffi~=0.7.1
  6. 构建镜像

    docker build -t docker_flask .
  7. 运行容器

    docker run -d -p 5000:5000 --name docker_flask docker_flask

    访问 http://<服务器地址>:5000 查看部署成功的 flask 项目。

Vue3 项目打包镜像

  1. 本地创建 Vue3 项目

    npm create vite@latest
    cd <project-folder>
    npm install
    npm run dev
  2. 项目打包构建

    npm run build

    在根目录生成 dist 目录。

  3. 上传 dist 文件夹

    使用 SSH 工具将 dist 文件夹上传到服务器指定目录,例如 /root/vue3

  4. 创建并编辑 Dockerfile

    /root/vue3 目录下创建 Dockerfile 文件:

    FROM nginx
    COPY dist/ /usr/share/nginx/html/
    COPY default.conf /etc/nginx/conf.d/default.conf
  5. 创建 Nginx 配置文件

    /root/vue3 目录下创建 default.conf 文件:

    server {
          listen 80;
          server_name localhost;
    
          location / {
            root /usr/share/nginx/html;
            index index.html index.htm;
    
            # 处理 SPA 路由
            try_files $uri $uri/ /index.html;
          }
    
          error_page 500 502 503 504 /50x.html;
          location = /50x.html {
            root /usr/share/nginx/html;
          }
    }
    
  6. 构建镜像

    docker build -t vue-docker-demo .
  7. 运行容器

    docker run -d -p 8080:80 --name docker-vue vue-docker-demo

    访问 http://<服务器地址>:8080 查看部署成功的 Vue3 项目。

SpringBoot 项目打包镜像

  1. 创建 SpringBoot 项目

    编写一个基本接口 /hello

  2. 打包项目

    mvn clean package

    将打包的 demo.jar 包上传到服务器目录,例如 /root/boot3

  3. 创建并编辑 Dockerfile

    /root/boot3 目录下创建 Dockerfile 文件:

    # 使用官方 OpenJDK 镜像
    FROM openjdk:17-jdk-slim
    
    # 设置工作目录
    WORKDIR /app
    
    # 将 JAR 包复制到容器中
    COPY demo.jar app.jar
    
    # 暴露服务端口
    EXPOSE 8080
    
    # 启动 Spring Boot 应用
    ENTRYPOINT ["java", "-jar", "app.jar"]
  4. 构建镜像

    docker build -t springboot3-app .
  5. 运行容器

    docker run -d -p 8081:8080 --name docker-boot3 springboot3-app

    访问 http://<服务器地址>:8081/hello 查看部署成功的 SpringBoot 项目。

1

—— 评论区 ——

昵称
邮箱
网址
取消
最新评论