首页主机资讯如何用Docker在Linux部署应用

如何用Docker在Linux部署应用

时间2025-11-11 01:41:04发布访客分类主机资讯浏览378
导读:如何在Linux上使用Docker部署应用 1. 安装Docker 在Linux系统上部署应用前,需先安装Docker。以下是常见发行版的安装步骤: Ubuntu/Debian: 更新软件包索引并安装依赖: sudo apt-get u...

如何在Linux上使用Docker部署应用

1. 安装Docker

在Linux系统上部署应用前,需先安装Docker。以下是常见发行版的安装步骤:

  • Ubuntu/Debian
    更新软件包索引并安装依赖:

    sudo apt-get update
    sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
    

    添加Docker官方GPG密钥和稳定版仓库:

    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
    sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
    

    安装Docker CE(社区版)并启动服务:

    sudo apt-get update
    sudo apt-get install -y docker-ce
    sudo systemctl start docker
    sudo systemctl enable docker  # 设置开机自启
    
  • CentOS
    更新系统并安装Docker:

    sudo yum update -y
    sudo yum install -y docker
    

    启动服务并配置开机自启:

    sudo systemctl start docker
    sudo systemctl enable docker
    

    (可选)优化配置:编辑/etc/docker/daemon.json,添加以下内容提升安全性与性能:

    {
    
      "exec-opts": ["native.cgroupdriver=systemd"],
      "log-driver": "json-file",
      "log-opts": {
    "max-size": "100m"}
    ,
      "storage-driver": "overlay2"
    }
        
    

    重启Docker使配置生效:

    sudo systemctl restart docker
    
  • 验证安装:运行docker version,若输出Docker版本信息(如Client: Docker Engine - Community),则说明安装成功。

2. 准备应用与Dockerfile

Dockerfile是定义镜像构建流程的核心文件,需根据应用类型编写。以下是常见场景的示例:

  • Python应用(如Flask/Django):
    在应用根目录创建Dockerfile,内容如下:

    # 使用官方Python轻量级镜像(减少镜像体积)
    FROM python:3.9-slim
    # 设置工作目录(容器内的路径)
    WORKDIR /app
    # 复制当前目录所有文件到容器的工作目录
    COPY . /app
    # 安装依赖(排除缓存以减小镜像大小)
    RUN pip install --no-cache-dir -r requirements.txt
    # 暴露应用端口(如Flask默认5000)
    EXPOSE 5000
    # 定义容器启动命令(运行应用)
    CMD ["python", "app.py"]
    
  • Java Spring Boot应用
    若应用已打包为app.jar(位于target目录),Dockerfile内容如下:

    # 使用官方OpenJDK运行时镜像(轻量且适配生产)
    FROM openjdk:11-jre-slim
    # 维护者信息(可选)
    LABEL maintainer="your-email@example.com"
    # 复制JAR文件到容器
    COPY target/app.jar /app.jar
    # 暴露应用端口(Spring Boot默认8080)
    EXPOSE 8080
    # 定义启动命令(直接运行JAR)
    ENTRYPOINT ["java", "-jar", "/app.jar"]
    
  • Nginx静态网站
    若需部署静态网站,可直接拉取Nginx镜像,无需自定义Dockerfile(后续步骤会介绍)。

3. 构建Docker镜像

在包含Dockerfile的应用目录下,运行以下命令构建镜像:

docker build -t your-app-name .
  • -t your-app-name:为镜像指定名称(如my-python-appspringboot-app),便于后续管理;
  • .:表示Dockerfile所在目录(当前目录)。

构建过程中,Docker会依次执行Dockerfile中的指令(如拉取基础镜像、复制文件、安装依赖)。构建完成后,可通过docker images查看镜像列表。

4. 运行Docker容器

构建完成后,使用docker run命令启动容器:

docker run -d -p host-port:container-port --name container-name your-app-name
  • -d:后台运行容器(detached模式);
  • -p host-port:container-port:将主机的端口映射到容器的端口(如-p 5000:5000表示主机5000端口映射到容器5000端口,适用于Python/Java应用;-p 80:80适用于Nginx);
  • --name container-name:为容器指定名称(如my-running-appmy-nginx),便于管理;
  • your-app-name:之前构建的镜像名称。

示例

  • 运行Python应用:docker run -d -p 5000:5000 --name my-python-app my-python-app
  • 运行Nginx:docker run --name my-nginx -d -p 80:80 nginxnginx为官方镜像名称,无需构建)。

验证应用是否运行:打开浏览器访问http://localhost:host-port(如http://localhost:5000),若看到应用页面则说明部署成功。

5. 管理Docker容器

部署后,需掌握常用管理命令:

  • 查看运行中的容器docker ps
  • 查看所有容器(包括停止的)docker ps -a
  • 停止容器docker stop container-name-or-id(如docker stop my-python-app);
  • 启动已停止的容器docker start container-name-or-id
  • 删除容器docker rm container-name-or-id(需先停止容器);
  • 查看容器日志docker logs container-name-or-id(用于排查问题)。

6. 可选优化:数据卷与网络

  • 数据卷(Volume):用于持久化数据(如数据库文件、上传的图片),避免容器删除后数据丢失。
    示例:运行MySQL容器并将主机/host/mysql-data目录映射到容器/var/lib/mysql

    docker run -d -p 3306:3306 --name my-mysql -v /host/mysql-data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
    
  • 自定义网络:让多个容器互相通信(如应用与数据库分离)。
    示例:创建名为my-network的自定义网络,并运行容器连接到该网络:

    docker network create my-network
    docker run -d --name my-app --network my-network my-python-app
    docker run -d --name my-db --network my-network mysql:5.7
    

    此时,my-app可通过my-db主机名访问MySQL容器(无需暴露端口到主机)。

通过以上步骤,即可在Linux系统上使用Docker完成应用部署。Docker的隔离性与可移植性,能显著简化环境配置与迁移流程,提升开发与运维效率。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: 如何用Docker在Linux部署应用
本文地址: https://pptw.com/jishu/746924.html
Docker镜像在Linux如何构建 如何用Docker在Linux搭建数据库

游客 回复需填写必要信息