使用Docker run运行容器
Docker是一个开源的应用容器引擎。容器引擎是Kubernetes(k8s)最重要的组件之一,负责管理镜像和容器的生命周期。使用Docker,无需配置运行环境,镜像中会包含一整套环境,同时进程间是隔离的,不会相互影响。
Docker容器都是由docker镜像创建,Docker利用容器来运行应用,Docker容器包含了应用运行所需要的所有环境。
镜像准备
WordPress和MySQL的镜像都是通用镜像,可以直接从镜像中心获取。
您可以在安装了容器引擎的机器上使用docker pull命令即可下载镜像,如下所示。
docker pull mysql:5.7 docker pull wordpress
下载完成后,执行docker images命令可以看到本地已经存在两个镜像,如下图所示。
运行容器
使用容器引擎可以直接运行Wordpress和MySQL,且可以使用--link参数将两个容器连接,在不改动代码的情况下让Wordpress的容器访问MySQL的容器。
执行下面的命令运行MySQL。
docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=******** -e MYSQL_DATABASE=wordpress -d mysql:5.7
参数解释如下:
- --name指定容器的名称为some-mysql。
- -e指定容器的环境变量。如这里指定环境变量MYSQL_ROOT_PASSWORD的值为********,请替换为您设置的密码。指定环境变量MYSQL_DATABASE,镜像启动时要创建的数据库名称为wordpress。
- -d表示在后台运行。
执行下面的命令运行Wordpress。
docker run --name some-wordpress --link some-mysql:mysql -p 8080:80 -e WORDPRESS_DB_PASSWORD=******** -e WORDPRESS_DB_USER=root -d wordpress
参数解释如下:
- --name指定容器的名称为some-wordpress 。
- --link指定some-wordpress容器链接some-mysql容器,并将some-mysql命名为mysql。这里--link只是提供了一种方便,不使用--link的话,可以指定some-wordpress的环境变量WORDPRESS_DB_HOST访问mysql的IP与端口。
- -p指定端口映射,如这里将容器的80端口映射到主机的8080端口。
- -e指定容器的环境变量,如这里指定环境变量WORDPRESS_DB_PASSWORD的值为********,请替换为您设置的密码。Wordpress的环境变量WORDPRESS_DB_PASSWORD必须与MySQL的环境变量MYSQL_ROOT_PASSWORD值相同,这是因为Wordpress需要密码访问MySQL数据库。WORDPRESS_DB_USER为访问数据的用户名,使用用户root去连接MySQL。
- -d表示在后台运行。
Wordpress运行之后,就可以在本机通过http://127.0.0.1:8080访问Wordpress博客了,如下所示。