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