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-挂载宿主机目录到容器

    目的:将宿主机的目录挂载到容器指定目录,达到数据共享 测试: 1)启动容器正常 docker run -d -p 8094:8090 -it  xxx:zzz 2)启动容器时设置共享目录 docker run -d -p 8094:8090 -it -v /opt/0407:/opt supermapgis:0322 异常:容器启动失败 原因:挂载的容器目录…

    Docker 2023年4月13日
    00
  • docker怎么部署etcd集群

    本篇内容介绍了“docker怎么部署etcd集群”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! 需要安装: docker docker-compose 参数详细: –name:设置成员节点的别名,建议为每个成员节点配置可识别的命名 &amp…

    Docker 2023年4月10日
    00
  • Docker发布镜像到DockerHub与阿里云容器

    下面我会详细讲解如何将Docker镜像发布到DockerHub和阿里云容器。需要注意的是,在发布之前,需要准备好Docker镜像和账户。 准备 首先,我们需要在Docker中创建一个镜像。假设我们现在有一个Java的Hello World程序,我们需要将它打包成一个可运行的镜像。 第一步,我们需要编写Dockerfile文件。 FROM openjdk:8 …

    Docker 2023年5月16日
    00
  • 在Jenkins容器安装使用Docker

    使用jenkins镜像时,因为镜像内docker的运行环境异常,而无法构建docker应用 例如 没有映射/var/run/docker.sock而导致的问题 [ERROR] Failed to execute goal com.spotify:docker-maven-plugin:1.2.0:build (build-image) on project …

    Docker 2023年4月11日
    00
  • 详解docker容器间通信的一种方法

    当我们在使用Docker容器技术时,通常会需要让多个容器之间进行通信,比如容器之间进行数据共享,或者提供各种服务等。在这篇文章中,我将详细讲解如何通过使用Docker网络和容器别名实现Docker容器间的通信。 基本概念 在本文中,我们将涉及到以下基本概念: Docker网络:Docker私有网络,用于连接Docker容器。 容器别名:Docker允许使用容…

    Docker 2023年5月15日
    00
  • Docker 网络命令详解

    下面我来为你详细讲解“Docker 网络命令详解”的完整攻略。 Docker 网络概述 Docker 网络是 Docker 容器之间通信的基础,Docker 提供了多种网络驱动。默认情况下,Docker 会创建两个网络:bridge 和 none。 bridge 网络驱动:默认的网络驱动,用于向外部网络公开端口并与其他容器进行通信。 none 网络驱动:与宿…

    Docker 2023年5月16日
    00
  • docker安装clickhouse

    创建临时容器,拿出里面的配置文件 # 下载镜像以及创建临时容器 sudo docker run –rm -d –name=clickhouse-server –ulimit nofile=262144:262144 -p 8123:8123 -p 9009:9009 -p 9000:9000 yandex/clickhouse-server:lates…

    Docker 2023年4月16日
    00
  • docker搭建redis三主三从集群的实现步骤

    下面我将提供一个完整的攻略,来教你如何使用 Docker 搭建 Redis 三主三从集群。 步骤一:准备工作 安装 Docker 首先需要在你的系统上安装 Docker,可以根据你的系统类型去下载相应的 Docker 版本。 下载 Redis 镜像 在 Docker 官方镜像源中可以下载 Redis 镜像,可以执行下面的命令来获取最新版: docker pu…

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