ubuntu18使用docker编译和运行的步骤

在Ubuntu 18.04上使用Docker来编译和运行应用程序主要包括以下步骤:

  1. 安装Docker

    在Ubuntu上安装Docker之前,首先需要更新包索引并安装一些必要的包,以确保能够通过HTTPS使用仓库:

    bash 复制代码
    sudo apt update
    sudo apt install apt-transport-https ca-certificates curl software-properties-common

    接下来,添加Docker官方的GPG密钥:

    bash 复制代码
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

    添加Docker仓库到APT源:

    bash 复制代码
    sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

    再次更新包数据库并安装Docker CE(社区版):

    bash 复制代码
    sudo apt update
    sudo apt install docker-ce

    验证Docker是否安装成功并运行:

    bash 复制代码
    sudo systemctl status docker
  2. 添加用户到Docker组 (可选):

    默认情况下,Docker需要sudo权限。为了免去每次命令前都要输入sudo,可以将用户添加到docker组:

    bash 复制代码
    sudo usermod -aG docker ${USER}

    为了使这些更改生效,你可能需要注销并重新登录,或者重新启动系统。

  3. 编写Dockerfile

    创建一个名为Dockerfile的文件,其中包含了构建你的应用程序所需的所有指令。例如,如果你正在创建一个简单的Python应用:

    Dockerfile 复制代码
    # Use an official Python runtime as a parent image
    FROM python:3.7-slim
    
    # Set the working directory in the container
    WORKDIR /usr/src/app
    
    # Copy the current directory contents into the container at /usr/src/app
    COPY . .
    
    # Install any needed packages specified in requirements.txt
    RUN pip install --no-cache-dir -r requirements.txt
    
    # Make port 80 available to the world outside this container
    EXPOSE 80
    
    # Define environment variable
    ENV NAME World
    
    # Run app.py when the container launches
    CMD ["python", "app.py"]
  4. 构建Docker镜像

    在包含Dockerfile的目录中运行以下命令来构建镜像:

    bash 复制代码
    docker build -t your-app-name .
  5. 运行容器

    通过以下命令运行你的应用程序:

    bash 复制代码
    docker run -p 4000:80 your-app-name

    这将启动一个容器,将容器的80端口映射到宿主机的4000端口。

  6. 查看运行中的容器

    要查看当前正在运行的容器,可以使用以下命令:

    bash 复制代码
    docker ps
  7. 停止容器

    当你想要停止容器时,可以使用以下命令:

    bash 复制代码
    docker stop container_id

    其中container_id是你从docker ps命令中获取的容器ID。

确保在执行上述步骤时,Dockerfile中的内容和命令都是针对你的应用程序进行调整的。以上只是一个简单的示例。

相关推荐
虎头金猫2 分钟前
如何在群晖NAS上通过Docker部署CloudSaver?群晖部署CloudSaver教程|聚合资源搜索并实现远程访问
运维·服务器·网络·python·docker·容器·pandas
反转180度1 小时前
Qt 6 + C++17 实现 SFTP 批量部署:工业设备运维工具实战解析
运维·c++·qt
雨辰AI1 小时前
RAG 知识库搭建:基于人大金仓构建信创运维问答机器人|全栈国产化落地完整版
运维·ai·机器人·ai编程
-今昭-2 小时前
Ansible
linux·运维·ansible
星野川崎2062 小时前
电商多店运维:云机长期挂机频繁掉线、账号无故风控原因剖析与解决方案
大数据·运维·云计算·电商
IT邦德4 小时前
Dify1.6基于ubuntu系统的部署实战
linux·运维·ubuntu
蓝速科技5 小时前
蓝速科技会议电子门牌规模化部署与运维成本实测
运维·科技
许彰午5 小时前
# allbytaskid——一个接口扛六个DataStore
运维·服务器·php
牛奶咖啡135 小时前
AI助力运维——AIGC运维应用实践—Deepseek的介绍与本地部署选型
运维·人工智能·deepseek·deepseek能做什么·deepseek本地部署配置·本地部署选型避坑原则·本地部署的典型方案
木白CPP5 小时前
Linux 驱动UART子系统源码分析
linux·运维·服务器·驱动开发·嵌入式硬件·开源软件