Docker 实践篇——搭建 wordpress

实验环境

系统: Ubuntu Server 16.04
Docker 版本: 17.09.0-ce

三个概念

镜像(image)

一个特殊的文件系统(使用 Union FS 技术),镜像不包含任何动态数据,其内容在构建之后也不会被改变。

容器(container)

容器就是镜像的运行时,容器可以被创建、启动、停止、删除、暂停等。

tips: 容器里面的存储会随着容器删除而丢失,根据 Docker 最佳实践的要求,容器不应该向其存储层内写入任何数据,容器存储层要保持无状态化。

仓库(repository)

仓库是我们拉货(镜像)的位置,官方的仓库是 Docker Hub

安装 Docker 并配置镜像加速

# step 1: 安装必要的一些系统工具
sudo apt-get update
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
# step 2: 安装GPG证书
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
# Step 3: 写入软件源信息
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
# Step 4: 更新并安装 Docker-CE
sudo apt-get -y update
sudo apt-get -y install docker-ce

# Step 5: 设置镜像代理 
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://6xacs6l2.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

搭建 wordpress

1.拉取 wordpress 镜像

docker pull wordpress:latest

docker pull 命令用于去仓库拉取镜像
wordpress:latest 是镜像名和对应镜像的版本

2.运行 wordpress 镜像

docker run –name mwp -e WORDPRESS_DB_HOST=192.168.2.197:3306 -e WORDPRESS_DB_USER=root -e WORDPRESS_DB_PASSWORD=123456 -p81:80 -d wordpress

docker run 命令用于去运行一个镜像,会产出一个容器。
--name mwp 为产出的容器取一个别名,非必须。
-e WORDPRESS_DB_HOST 配置数据库位置。

需要注意的是如果使用宿主机的数据库,不能使用 localhost 或 127.0.0.1 ,因为这样会指向容器自身。

-e WORDPRESS_DB_USER 配置数据库用户名。
-e WORDPRESS_DB_PASSWORD 配置数据库密码。
-p 81:80 映射端口,将容器的 80 端口映射到宿主机 81 端口。
-d 后台运行 wordpress 镜像

3.查看运行中的镜像——mwp容器

docker ps

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                NAMES
bdea494df12b        wordpress           "docker-entrypoint..."   10 hours ago        Up 2 hours          0.0.0.0:81->80/tcp   mwp

接着访问 192.168.2.197:81 就是配置 wordpress 了。

这里写图片描述

可能会遇到的问题

  1. 运行 wordpress 镜像之后,docker ps 查看运行中的容器没有 mwp 容器
    这时最大可能就是数据库配置错误,检查你的数据库是否可以被外部访问等。

  2. 运行 wordpress 镜像,数据库也自动生成了,但是访问被拒绝。由于 wordpress 自身是使用 php 的,所以你可能需要检查系统上是否安装了 php 。 特别的,有可能在使用 -p 端口映射时外部的端口被禁用。

猜你喜欢

转载自blog.csdn.net/xiaoping0915/article/details/79515309