10分钟学会docker

10分钟学会docker

什么是docker

Docker是一种容器化技术,它可以让开发者将应用程序和依赖项打包到一个独立的容器中,从而使得应用程序可以跨平台运行并且更加轻便、灵活。Docker容器可以在任何支持Docker的主机上运行,例如Linux、MacOS和Windows系统。

安装docker

在进行Docker开发之前,我们首先需要安装Docker。我们可以通过以下步骤在Linux系统上安装Docker:

  1. 安装所需的依赖包:
sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release
  1. 添加Docker官方GPG密钥:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
  1. 将Docker官方存储库添加到APT源:
echo \
 "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
 $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  1. 安装Docker引擎:
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io

使用docker

现在我们已经安装了Docker,我们来看看如何使用它。

示例1:运行一个简单的应用程序

我们可以使用以下步骤运行一个简单的“Hello World”应用程序:

  1. 创建Dockerfile:
# 使用官方的python运行时作为基础镜像
FROM python:3.9-slim-buster

# 将当前目录下的应用程序复制到容器的/app目录下
COPY . /app

# 设置工作目录为/app
WORKDIR /app

# 安装应用程序所需的依赖项
RUN pip install --trusted-host pypi.python.org -r requirements.txt

# 在容器启动时运行应用程序
CMD ["python", "app.py"]
  1. 构建镜像:
docker build -t myapp .
  1. 运行容器:
docker run -p 8080:80 myapp

现在我们可以在浏览器中访问http://localhost:8080/,就可以看到我们的“Hello World”应用程序运行起来了。

示例2:与数据库交互

现在我们来看看如何在Docker容器中使用数据库。

  1. 首先,我们需要安装一个数据库,我们可以使用以下命令在Docker容器中安装MySQL:
docker run -d --name=mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw mysql:latest
  1. 然后,我们需要修改示例1中的应用程序,以便它可以连接到数据库:
import mysql.connector

# 连接到数据库
cnx = mysql.connector.connect(user='root', password='my-secret-pw',
                              host='localhost',
                              database='test')

# 执行查询
cursor = cnx.cursor()
query = ("SELECT * FROM mytable")
cursor.execute(query)

# 处理结果
for (name, value) in cursor:
    print("{}: {}".format(name, value))

# 关闭连接
cnx.close()
  1. 然后我们需要更新Dockerfile,以便包含我们的数据库驱动程序和连接信息:
# 使用官方的python运行时作为基础镜像
FROM python:3.9-slim-buster

# 将当前目录下的应用程序复制到容器的/app目录下
COPY . /app

# 设置工作目录为/app
WORKDIR /app

# 安装应用程序所需的依赖项
RUN pip install --trusted-host pypi.python.org -r requirements.txt

# 安装MySQL驱动程序
RUN pip install mysql-connector-python

# 定义环境变量
ENV DB_HOST=localhost
ENV DB_USER=root
ENV DB_PASSWORD=my-secret-pw
ENV DB_DATABASE=test

# 在容器启动时运行应用程序
CMD ["python", "app.py"]
  1. 最后,我们需要运行容器并将连接信息传递给环境变量:
docker run -p 8080:80 --link=mysql:mysql -e DB_HOST=mysql -e DB_USER=root -e DB_PASSWORD=my-secret-pw -e DB_DATABASE=test myapp

现在我们可以在浏览器中访问http://localhost:8080/,就可以看到我们的应用程序从MySQL数据库中检索数据。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:10分钟学会docker - Python技术站

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

相关文章

  • Docker 数据管理Named volume详解

    下面我将详细讲解 “Docker 数据管理Named volume详解” 的完整攻略,主要分为以下几个部分: 1. 介绍Named Volume Named Volume 是 Docker 数据管理的一种方法,它的作用是将宿主机的目录或文件夹与 Docker 容器的目录或文件进行映射。该方法提供了一种持久化数据的解决方案,使得容器中的数据不会因为容器的删除而…

    Docker 2023年5月16日
    00
  • Docker Manager for Docker Swarm deploy

    Swarm是Docker公司在2014年12月初发布的一套较为简单的工具,用来管理Docker集群,它将一群Docker宿主机变成一个单一的,虚拟的主机。Swarm使用标准的Docker API接口作为其前端访问入口,换言之,各种形式的Docker Client(docker client in Go, docker_py, docker等)均可以直接与Sw…

    Docker 2023年4月11日
    00
  • docker快速搭建kafka集群

    本文介绍如何在linux下利用docker快速搭建kafa单机集群 2.项目 地址:https://github.com/wurstmeister/kafka-docker 3.环境安装 3.1 安装docker-compose 1)安装Python3 参考Python系列 2)安装相关lib Ubuntu: sudo apt install -y libf…

    Docker 2023年4月13日
    00
  • 超简单实现Docker搭建个人博文系统

    下面是详细的“超简单实现Docker搭建个人博文系统”的攻略。 1. 准备工作 首先需要安装Docker和Docker Compose,可以按照官方文档进行安装。安装完成后,需要新建一个目录,用于之后搭建博客系统。 2. 下载并配置Ghost Ghost是一个开源的博客系统,我们可以通过Docker来快速搭建Ghost。 在新建的目录下,执行以下命令: mk…

    Docker 2023年5月16日
    00
  • HTTPS基础原理和配置-2

    〇、概述 作为概述,以下是本文要讲的内容。HTTPS 是什么? 每个人都可能从浏览器上认出 HTTPS,并对它有好感。然后再讲一遍基础知识,再详细讲一下协议版本,密码套件(Cipher Suites),本文的重点会落在如何配置 NGINX,让你的网站使用 HTTPS 服务。 除此之外,还有一个使用 HTTPS 作为代理的问题; 所以,如果你的 NGINX 在…

    2023年4月9日
    00
  • Docker上传/拉取阿里云镜像

    一、创建镜像仓库 1.登录阿里云 URL:https://cr.console.aliyun.com/cn-hangzhou/mirrors   2.创建镜像仓库 按提示要求填写内容创建镜像仓库   镜像仓库创建完成后,会在列表中显示,如下图: 2.查看仓库信息 点击管理查看仓库基本信息   二、上传本地镜像到阿里云镜像仓库 docker login –u…

    Docker 2023年4月12日
    00
  • 在docker容器中如何自动生成配置文件(以nginx配置为例)

      应用场景类似于多个域名要起多个容器,有些参数有些域名需要,有些域名不需要,或者参数的值不太一样,需要去对应的配置文件修改,不太灵活,如果通过变量的方式直接定义在Dockerfile文件中,需要哪些参数,不需要哪些参数,哪些参数需要修改对应的值,直接在Dockerfile中修改岂不美哉?下面的方法仅仅起到抛砖引玉的作用,具体业务还需要写对应的脚本和Dock…

    Docker 2023年4月12日
    00
  • win10 使用docker

    新手 win10 下使用docker 1:下载docker for win 2:查看docker使用文档 https://github.com/widuu/chinese_docker 3 : 下载镜像 使用阿里快。。 https://dev.aliyun.com/search.html?spm=5176.1972344.0.1.KRcLZ8 4 :下载镜像…

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