Docker和CentOS 7

简介

Docker是一个开源的容器化平台,可以使应用程序在容器中运行,并且提供了一种轻量级、可移植和可扩展的方式来打包、部署和运行应用程序。CentOS 7是一个基于Red Hat Enterprise Linux(RHEL)源代码构建的Linux发行版,因其稳定性和安全性而受到广泛采用。

本文将介绍如何在CentOS 7上安装和使用Docker,并提供一些基本的使用示例。

安装Docker

在CentOS 7上安装Docker非常简单。首先,确保系统已经更新到最新的版本:

$ sudo yum update

然后,安装Docker的存储库:

$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2
$ sudo yum-config-manager --add-repo 

现在可以安装Docker了:

$ sudo yum install -y docker-ce

安装完成后,启动Docker服务,并设置开机自启动:

$ sudo systemctl start docker
$ sudo systemctl enable docker

使用Docker

运行容器

在Docker中,容器是由镜像创建的运行实例。镜像是一个只读的模板,可以用来创建容器。可以从Docker Hub上下载公共镜像,也可以自己构建镜像。

让我们以一个简单的示例开始:运行一个nginx容器。首先,从Docker Hub上下载nginx镜像:

$ sudo docker pull nginx

然后,运行容器:

$ sudo docker run -d -p 80:80 nginx

上面的命令将在后台运行一个nginx容器,并将容器的80端口映射到主机的80端口。现在,您可以通过浏览器访问http://localhost来查看Nginx欢迎页面。

构建镜像

除了使用现有的镜像,您还可以通过编写Dockerfile来构建自己的镜像。Dockerfile是一个文本文件,包含了一系列的指令,用于描述如何构建镜像。

以下是一个示例的Dockerfile,用于构建一个简单的Python Flask应用程序:

# 基于Python 3.8镜像构建
FROM python:3.8

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

# 复制当前目录下的所有文件到容器的/app目录下
COPY . /app

# 安装依赖
RUN pip install --no-cache-dir -r requirements.txt

# 设置环境变量
ENV FLASK_APP=app.py

# 暴露5000端口
EXPOSE 5000

# 运行应用程序
CMD ["flask", "run", "--host=0.0.0.0"]

使用以下命令在当前目录中构建镜像:

$ sudo docker build -t myflaskapp .

然后,使用以下命令运行容器:

$ sudo docker run -d -p 5000:5000 myflaskapp

现在,您可以通过浏览器访问http://localhost:5000来查看运行在容器中的Flask应用程序。

容器互联

通过容器互联,可以使多个容器之间进行通信和协作。Docker提供了多种方式来实现容器互联,包括使用链接、网络和环境变量。

以下是一个示例,演示了如何使用Docker Compose来创建一个WordPress应用程序,该应用程序由WordPress容器和MySQL容器组成:

version: '3'
services:
  db:
    image: mysql:5.7
    volumes:
      - db_data:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=wordpress
      - MYSQL_DATABASE=wordpress
      - MYSQL_USER=wordpress
      - MYSQL_PASSWORD=wordpress

  wordpress:
    depends_on:
      - db
    image: wordpress:latest
    ports:
      - "8000:80"
    environment:
      - WORDPRESS_DB_HOST=db:3306
      - WORDPRESS_DB_USER=wordpress