【docker】Docker的基本指令和HTML/PYTHON/C++的简单创建示例

2024-06-04 7585阅读

【docker】Docker的基本指令和HTML/PYTHON/C++的简单创建示例 第1张

【docker】Docker的基本指令和HTML/PYTHON/C++的简单创建示例 第2张

目录

🌊1. 什么是 Docker?

🌊2. Docker 安装

🌊3. Docker基本指令

🌊4. Docker 创建示例【联网情况】

🌍4.1 示例:HTML

🌍4.2 示例:Python 脚本

🌍4.3 示例:C++ 程序

🌊5. Docker 创建C++示例【无网情况】

🌍5.1 示例:Ubuntu环境

🌍5.2 示例:公司桌面云内

🌊6. Docker Hub 之上传与下载

🌍6.1 Docker Hub之上传

🌍6.2 Docker Hub之下载运行

🌊7. 结论


🌊1. 什么是 Docker?

Docker 是一个开源平台,专为简化开发、部署和运行应用程序而设计。通过使用称为“容器”(Container)的轻量级虚拟化技术,将应用程序及其依赖环境打包到一个独立的单元中,使应用程序能够在任何环境中一致地运行。

Docker 的核心概念

  1. 镜像(Image):镜像是一个只读模板,包含了运行应用程序所需的所有内容类似一个软件包,包含操作系统、应用程序代码、运行时、库和依赖项。镜像可以从 Docker Hub 或其他镜像仓库中获取,也可以自己创建。
    例子:如果你有 Python 应用程序,则可以创建一个包含 Python 解释器和应用程序代码的镜像。

  2. 容器(Container):容器是镜像的一个可运行实例,包含了运行应用程序的所有必要环境。容器是独立的、可移植的,并且可以在任何支持 Docker 的系统上运行【可认为是一个轻量级的、独立的虚拟机】
    例子:使用前面创建的 Python 镜像,你可以启动一个容器来运行你的应用程序。这个容器就像一个轻量级的虚拟机,里面有你的应用程序及其依赖项。

  3. Dockerfile:Dockerfile 是一个脚本文件,包含了一系列指令,用于定义如何创建 Docker 镜像。每条指令在 Docker 镜像中创建一个新的层(Layer)。
    例子:一个简单的 Dockerfile 可能包含以下内容:

     

    # 使用 Python 3.8 作为基础镜像
    FROM python:3.8-slim
    # 设置工作目录
    WORKDIR /app
    # 复制当前目录下的所有文件到工作目录
    COPY . .
    # 安装依赖包
    RUN pip install flask
    # 暴露容器内的 5000 端口
    EXPOSE 5000
    # 运行应用程序
    CMD ["python", "app.py"]
  4. Docker Hub:Docker Hub 是一个公共的镜像仓库,允许用户存储和分享 Docker 镜像。用户可以从 Docker Hub 下载已有的镜像,或者上传自己的镜像。
    例子:你可以从 Docker Hub 拉取官方的 Python 镜像,使用命令

     

    docker pull python:3.8-slim

🌊2. Docker 安装

传送门:【服务器】安装Docker环境_在服务器上安装docker


🌊3. Docker基本指令

# 1.列出正在运行的容器,包括停止的容器:
docker ps -a
# 如果查找名为 shuym-centos-container 的容器,可以执行以下命令:
docker ps -a | grep shuym-centos-container
# 2.使用 docker stop 命令停止容器。容器 ID 是 container_id
docker stop container_id
# 或者,容器 name 是 container_name
docker stop container_name
# 3.删除指定容器。假设容器 ID 是 container_id,执行以下命令删除容器:
docker rm container_id
# 或者,容器 name 是 container_name
docker rm container_name
# 4.列出所有本地镜像:
docker images
# 5.删除 Docker 镜像:假设镜像 ID 是 image_id,执行以下命令删除镜像:
docker rmi image_id
# 6.关闭 Docker 容器:停止容器而不删除它
docker stop container_id
# 7.启动指定容器:
docker start container_id

🌊4. Docker 创建示例【联网情况】

🌍4.1 示例:HTML

创建一个简单的 HTML 文件,作为 Web 服务器要提供的内容。

1. 创建 index.html 的文件:

vim index.html

内容如下:



    
    My Docker Website


    

Hello from Docker!

This is a simple Docker example.

2. 创建 Dockerfile文件

该文件描述了如何构建 Docker 镜像:

vim Dockerfile

内容如下:

# 使用基础镜像
FROM nginx:latest
# 将本地文件复制到容器中的指定路径
COPY index.html /usr/share/nginx/html
# 暴露容器的端口
EXPOSE 80

该 Dockerfile 使用了 Nginx 的官方镜像作为基础,然后将我们的 index.html 文件复制到 Nginx 的默认网站目录,并暴露了容器的 80 端口。

3. 构建 Docker 镜像。

在项目文件夹中执行以下命令:

docker build -t my-docker-example .

这将根据 Dockerfile 中的描述构建一个名为 my-docker-example 的 Docker 镜像。

4. 运行 Docker 容器。

执行以下命令:

docker run -d -p 8080:80 my-docker-example

这将在后台运行我们的 Docker 容器,并将主机的 8080 端口映射到容器的 80 端口。

现在,可以打开浏览器访问 http://localhost:8080,将看到一个简单的网页,显示 "Hello from Docker!"。

如果不支持浏览器可以输入命令:

curl http://localhost:8080

【docker】Docker的基本指令和HTML/PYTHON/C++的简单创建示例 第3张

可以看到对应内容。测试完记得清理该docker容器与模板。


🌍4.2 示例:Python 脚本

创建一个简单的 Python 脚本。

1. 创建一个名为 app.py 的文件:

vim app.py

内容如下:

# app.py
print("Hello from Docker!")

2. 创建一个 Dockerfile

用于描述如何构建我们的 Docker 镜像。在项目文件夹中创建一个名为 Dockerfile 的文件:

vim Dockerfile

内容如下:

# 使用基础镜像
FROM python:3.9-slim
# 将本地文件复制到容器中的指定路径
COPY app.py /app/app.py
# 设置工作目录
WORKDIR /app
# 运行 Python 应用程序
CMD ["python", "app.py"]

该 Dockerfile 使用了 Python 官方镜像作为基础,然后将我们的 app.py 文件复制到容器的 /app 目录,并设置了工作目录为 /app,最后通过 CMD 指令运行了 Python 应用程序。

3. 构建 Docker 镜像。

在项目文件夹中执行以下命令:

docker build -t my-python-app .

这将根据 Dockerfile 中的描述构建一个名为 my-python-app 的 Docker 镜像。

4. 运行 Docker 容器。

执行以下命令:

docker run my-python-app

这将运行 Docker 容器,并在控制台上打印 "Hello from Docker!"。

【docker】Docker的基本指令和HTML/PYTHON/C++的简单创建示例 第4张

测试完记得清理该docker容器与模板。


🌍4.3 示例:C++ 程序

1. 创建C++程序

vim hello.cpp

内容如下:

#include 
int main() {
    std::cout 

    免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

    目录[+]