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一键部署zookeeper

    version: ‘3.1’ services: zoo1: image: zookeeper:3.4.11 restart: always hostname: zoo1 container_name: zookeeper_1 #domainname: ports: – 2181:2181 environment: ZOO_MY_ID: 1 ZOO_SERV…

    Docker 2023年4月13日
    00
  • Grafana 系列文章(一):基于 Grafana 的全栈可观察性 Demo

    ?️Reference: https://github.com/grafana/intro-to-mlt 这是关于 Grafana 中可观察性的三个支柱的一系列演讲的配套资源库。 它以一个自我封闭的 Docker 沙盒的形式出现,包括在本地机器上运行和实验所提供的服务所需的所有组件。 Grafana 全栈可观察性产品 具体的可观察性转换图 前提 Docker…

    2023年4月10日
    00
  • Docker系列器九:docker-compose与docker-compose.yml语法

    一般情况下:docker 安装wordpress,流程是:docker run -d –name mysql -v mysql-data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=wordpress mysql docker run -d -e WORDPRESS_DB_HOS…

    Docker 2023年4月13日
    00
  • Docker教程之使用dockerfile生成镜像

    下面我就来详细讲解“Docker教程之使用dockerfile生成镜像”的完整攻略。 1. 准备工作 安装Docker 创建一个文件夹(例如my-docker-app)并进入该文件夹 在文件夹中创建一个Dockerfile文件(文件名必须大写) 2. 编写Dockerfile 在创建好Dockerfile文件后,我们需要按照以下步骤编写Dockerfile:…

    Docker 2023年5月16日
    00
  • 从零搭建docker私有仓库的步骤

    下面是从零搭建Docker私有仓库的步骤的完整攻略: 准备工作 在开始搭建Docker私有仓库之前,需要完成以下准备工作: 安装Docker:在使用Docker的过程中,首先需要在主机上安装Docker,可以参考Docker官方文档进行安装。 申请域名:需要一个域名用来访问私有仓库,默认域名为registry.local,可以自定义域名。 搭建私有仓库 创建…

    Docker 2023年5月15日
    00
  • ceph13.2使用docker部署

    环境:centos7.6 1、ceph概论解析 Ceph 存储集群至少需要一个 Ceph Monitor 和两个 OSD 守护进程。而运行 Ceph 文件系统客户端时,则必须要有元数据服务器( Metadata Server ) Ceph OSDs: Ceph OSD 守护进程( Ceph OSD )的功能是存储数据,处理数据的复制、恢复、回填、再均衡,并通…

    Docker 2023年4月11日
    00
  • 在Linux服务器上升级Docker的教程

    请看下面的内容。 升级Docker的前提条件 在Linux服务器上升级Docker的前提条件如下: 已经安装过 Docker。 你的操作系统和 Docker 的版本之间有兼容性。 升级Docker的步骤 接下来我们来讲解升级 Docker 的步骤: 第一步:备份 在升级之前,最好先做一次备份,以免升级出现问题导致数据丢失。你可以使用以下命令进行备份: sud…

    Docker 2023年5月15日
    00
  • 52个有用的 Docker 工具

    Docker工具分类列表 编排和调度 持续集成/持续部署(CI / CD) 监控 记录 安全 存储/卷管理 联网 服务发现 构建 管理 编排和调度 1. Kubernetes Kubernetes是市场上最实用的最受欢迎的容器编排引擎。最初作为一个Google项目开始,成千上万的团队使用它来部署生产中的容器。谷歌声称它每周使用Kubernetes运行数十亿个…

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