30分钟带你了解Docker(推荐)

介绍

Docker 是一个开源的应用程序容器引擎,可以轻松地将应用程序打包、分发和运行在任何操作系统中。它有助于开发人员将应用程序与底层系统隔离,使得应用能够快速而可靠地在不同的环境中运行。

本篇攻略将带你学习 Docker 的基础知识,包括如何创建、运行、打包和检查 Docker 容器。同时,我们将会通过两个示例说明这些基础概念。

步骤

步骤一:安装 Docker

首先,我们需要在我们的计算机上安装 Docker。Docker 支持多种操作系统,包括 Windows、Mac 和 Linux。

对于 Windows 用户,可以在官网下载 Docker Desktop(https://www.docker.com/products/docker-desktop)并安装即可。

对于 Mac 用户,可以在官网下载 Docker Desktop(https://www.docker.com/products/docker-desktop)或者使用 Homebrew 安装 Docker。

对于 Linux 用户,可以在官网下载相应的包,并按照官网的说明进行安装。

步骤二:建立并运行一个 Docker 容器

我们将会使用一个示例来建立并运行一个 Docker 容器。首先,在我们的计算机上创建一个新目录:

mkdir mydocker

然后,我们需要在这个目录下创建一个名为 Dockerfile 的文件,文件内容如下:

 FROM alpine:latest
 RUN apk update && apk add python3
 CMD ["python3"]

这个 Dockerfile 的作用是从 Alpine Linux 的官方仓库中下载最新的版本号,并安装 Python3。然后,它将会传入一个 CMD 指令来运行 Python3。

接下来,在命令行中输入以下命令:

docker build -t mypythonimage .

这条命令会将 Dockerfile 文件中的内容打包成一个名为 mypythonimage 的镜像,并将这个镜像存储在本地仓库中。

现在我们可以使用这个镜像来创建一个 Docker 容器。输入以下命令:

docker run -it mypythonimage

这条命令会在当前终端中启动一个新的交互式容器。你应该会看到一个 Python 3 的交互式界面,在这里你可以输入 Python 的命令进行交互式编程。

当你离开这个容器时,容器会自动停止。你可以随时通过 docker start 命令再次启动它。

步骤三:另外一个示例

我们将使用另一个示例来进一步了解 Docker。我们会使用一个 Node.js 的自定义 Docker 镜像,并制作一个简单的 web 应用程序。首先,你需要在计算机上安装 Git 和 Docker。

然后,我们需要在计算机上创建一个名为 myapp 的文件夹,并创建两个子文件夹 myappnode_modules

mkdir myapp
cd myapp
mkdir myapp
mkdir node_modules

接下来,在文件夹 myapp 中创建一个名为 index.js 的文件,文件内容如下:

const http = require('http');
const hostname = '0.0.0.0';
const port = 3000;
const server = http.createServer((req, res) => {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/plain');
  res.end('Hello World\n');
});
server.listen(port, hostname, () => {
  console.log(`Server running at http://${hostname}:${port}/`);
});

这个文件创建了一个 web 服务器,并监听端口 3000。当你访问 http://localhost:3000 时,你应该会看到 "Hello World!" 字符串。

接下来,你需要在 myapp 文件夹中创建一个名为 package.json 的文件,并添加以下内容:

{
  "name": "myapp",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "dependencies": {
    "express": "^4.16.4"
  },
  "scripts": {
    "start": "node index.js"
  },
  "author": "",
  "license": "ISC"
}

这个文件会告诉 Docker 容器需要安装哪些 Node.js 模块,并提供了一个 start 脚本来启动服务器。

接下来,在 myapp 文件夹中创建一个 .dockerignore 文件,并添加以下内容:

node_modules
npm-debug.log

这个文件会告诉 Docker 容器不要复制 node_modules 目录和 npm-debug.log 文件。

最后,我们需要创建一个 Dockerfile 文件,并添加以下内容:

# 基于 Node.js LTS 版本建立自定义镜像
FROM node:lts-alpine

# 在容器中创建一个名为 /usr/src/app 的文件夹,并将其作为工作目录
WORKDIR /usr/src/app

# 拷贝源代码到工作目录
COPY ./myapp .

# 安装项目依赖
RUN npm install --production

# 暴露容器的 3000 端口
EXPOSE 3000

# 定义容器启动时运行的命令
CMD ["npm", "start"]

这个文件会告诉 Docker 使用 Node.js 的最新 LTS 版本作为基础镜像来构建自定义镜像,将工作目录设置为 /usr/src/app,复制源代码到容器中,并安装项目依赖。最后,它会暴露容器的 3000 端口,并使用 npm start 命令来启动服务器。

接下来,在命令行中输入以下命令,构建我们的自定义镜像:

docker build -t mynodeapp .

最后,在命令行中输入以下命令,启动我们刚才构建的自定义镜像:

docker run -p 3000:3000 mynodeapp

这条命令会启动我们自定义镜像,并把容器的 3000 端口映射到主机的 3000 端口,这样你就可以在本地浏览器中访问 http://localhost:3000 来查看我们的 web 应用程序了。

结论

通过本文中的示例,我们可以了解 Docker 的基本操作流程。Docker 有很多强大的功能,比如容器的自动化部署和管理。Docker 还支持多个容器的互相通信,这使得它成为了一个非常适合微服务架构的工具。希望本文对学习 Docker 的同学有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:30分钟带你了解Docker(推荐) - Python技术站

(0)
上一篇 2023年5月16日
下一篇 2023年5月16日

相关文章

  • 详解使用Docker搭建Java Web运行环境

    下面我将为你详细讲解“详解使用Docker搭建Java Web运行环境”的完整攻略,并且为你提供两个示例说明。 1. 准备工作 在开始之前,需要在你的机器上安装Docker,确保安装成功,可以通过以下命令查看Docker版本: docker –version 2. 构建镜像 首先,需要编写Dockerfile,此文件定义了所需镜像的构建规则。Dockerf…

    Docker 2023年5月15日
    00
  • Ansible 学习笔记 – 定位主机和组的模式

    中英文对照表 英文 中文 备注 host 主机 group (主机)组 pattern 模式 ad hoc 特别命令 playbook 剧本 Ansible 专有名词,一段复杂的编排 inventory 库存 Ansible 专有名词 flag 标志 alias 别名 模式(Patterns):定位主机和主机组 当您通过一个特别命令(ad hoc)或运行一个…

    Docker 2023年4月10日
    00
  • 在CentOS系统中安装Docker的教程

    以下是“在CentOS系统中安装Docker的教程”的完整攻略: 安装 Docker 1. 更新系统 首先,为了保证系统安装 Docker 之后能够正常运行,需要先更新系统: sudo yum update 2. 安装依赖包 sudo yum install -y yum-utils device-mapper-persistent-data lvm2 3.…

    Docker 2023年5月16日
    00
  • K3S系列文章-使用AutoK3s在腾讯云上安装高可用K3S集群

    开篇 《K3s 系列文章》 《Rancher 系列文章》 方案 在腾讯云上安装 K3S 后续会在这套 K3S 集群上安装 Rancher 方案目标 高可用 3 台master 的 k3s 集群 数据备份 k3s 数据备份到 腾讯云对象存储 cos 尽量复用公有云的能力 Tencent Cloud Controller Manager (❌ 因为腾讯云已经放弃…

    2023年4月9日
    00
  • docker安装jdk1.8

    Dockerfile FROM centos MAINTAINER liuyang # 新建目录 RUN mkdir /usr/local/java # 将jdk文件拷贝到容器/usr/local/java/并解压 ADD jdk-8u181-linux-x64.tar.gz /usr/local/java/ # 软连接 RUN ln -s /usr/loc…

    Docker 2023年4月13日
    00
  • Docker超详细讲解镜像操作

    Docker超详细讲解镜像操作 Docker镜像是Docker轻量级的构建单元,能够支持更快速的应用部署和管理。在这篇攻略中,我们将详细讨论如何使用Docker镜像进行操作。 Docker镜像的基本操作 拉取镜像 你可以从Docker Hub获取镜像,使用以下命令进行: docker pull [OPTIONS] NAME[:TAG|@DIGEST] 其中O…

    Docker 2023年5月16日
    00
  • Docker容器搭建本地私有仓库详情

    请允许我详细讲解一下“Docker容器搭建本地私有仓库”的完整攻略及两个示例说明。 第一步:安装Docker 在搭建本地私有仓库前需要安装Docker,在Windows、Linux和MacOS中的安装方式略有不同,可以参阅官方文档进行安装。 第二步:启动Docker服务 在Docker安装成功后,需要启动Docker服务。在Linux和MacOS中启动命令为…

    Docker 2023年5月16日
    00
  • 10.通过jenkins将springboot项目打包成docker镜像部署到humpback集群

    前提准备 1.拥有一台jenkins服务器    192.168.215.50:8080  2.拥有一台humpback服务器   192.168.215.81:8012 3.有用一台docker服务器    192.168.215.20 (安装jdk) 4.获得一个基础JDK8镜像用来包装我们的应用程序 #先下载一个镜像 docker image pull…

    Docker 2023年4月12日
    00
合作推广
合作推广
分享本页
返回顶部