docker安装wordpress
2022-07-29 10:13:20
97
{{single.collect_count}}

docker安装wordpress

docker&wordpress

准备环境

  • linux
  • docker(wordpress/mysql)

docker安装

windows

如果你是Win10 64位系统,那么推荐使用Docker for Windows,直接从Docker官方网站下载最新的Docker for Windows安装包即可,https://docs.docker.com/docker-for-windows/install/

如果不是Win10 64位系统,则可以下载Docker Toolbox,https://docs.docker.com/toolbox/toolbox_install_windows/

安装包下载之后直接双击安装即可,安装详细过程可以参考文档说明,安装完成之后,进入命令行。

linux

详细的分步骤的安装说明可以参见官方文档,https://docs.docker.com/engine/installation/linux/ubuntu/。

在官方文档中详细说明了不同Linux系统的安装方法,安装流程根据文档一步步执行即可安装成功。

但是为了使得安装更加方便,Docker官方还提供了一键安装脚本,使用它会使得安装更加便捷,不用再去一步步执行命令安装了,在此介绍一下一键脚本安装方式。

首先是Docker官方提供的安装脚本,相比其他脚本,官方提供的一定更靠谱,安装命令如下:

curl -sSL https://get.docker.com/ | sh

只要执行如上一条命令,等待一会儿Docker便会安装完成,非常方便。

但是官方脚本安装有一个缺点,那就是慢,也可能下载超时,所以为了加快下载速度,我们可以使用国内的镜像来安装,所以在这里还有DaoCloud的安装脚本。

DaoCloud安装脚本:

curl -sSL https://get.daocloud.io/docker | sh

Mac OS

Mac平台同样有两种选择,Docker for Mac和Docker Toolbox。

Docker for Mac要求系统为OS X EI Captain 10.11或更新,至少4GB内存,如果你的系统满足此要求,则强烈建议安装Docker for Mac。

可以使用HomeBrew安装,安装命令如下:

brew cask install docker

另外也可以手动下载安装包安装,安装包下载地址为:https://download.docker.com/mac/stable/Docker.dmg

下载完成之后直接双击安装包,然后将程序拖动到应用程序中即可。

点击程序图标运行Docker,会发现在菜单栏中出现了Docker的图标

国内镜像

配置文件

在 /etc/docker/daemon.json 中写入如下内容(如果文件不存在请新建该文件)

{"registry-mirrors": ["https://dockerhub.azk8s.cn","https://reg-mirror.qiniu.com","https://registry.docker-cn.com"]}

重启Docker

sduo systemctl restart docker

其他方法

安装好Docker之后,在运行测试命令时,我们会发现它首先会下载一个Hello World的镜像,然后将其运行,但是下载速度有时候会非常慢,这是因为它默认还是从国外的Docker Hub下载的,所以为了提高镜像的下载速度,我们还可以使用国内镜像来加速下载,所以这就有了Docker加速器一说。

推荐的Docker加速器有DaoCloud。

DaoCloud:https://www.daocloud.io/mirror

不同平台的镜像加速方法配置可以参考DaoCloud的官方文档:http://guide.daocloud.io/dcs/daocloud-9153151.html。

配置完成之后,可以发现镜像的下载速度会快非常多。

docker安装mysql

创建存放目录

mkdir -p ~/mysql/data ~/mysql/logs ~/mysql/conf

data目录将映射为mysql容器配置的数据文件存放路径

logs目录将映射为mysql容器的日志目录

conf目录里的配置文件将映射为mysql容器的配置文件

拉取mysql镜像

任选其一

# 阿里云镜像docker pull registry.cn-hangzhou.aliyuncs.com/acs-sample/mysql:5.7#带版本号的mysql服务docker pull mysql/mysql-server:5.7#不带版本号的mysql服务docker pull mysql/mysql-server#拉取最新版本,可以不加latestdocker pull mysql:latest

安装镜像

docker run -p 3308:3306 -m 300m --name wordpress-sql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5
  • -p: 指定端口映射,格式为:主机(宿主)端口:容器端口
  • -P: 随机端口映射,容器内部端口随机映射到主机的高端口
  • **-m ?*设置容器使用内存最大值
  • –name : 为容器指定一个名称;
  • –volume , -v: 绑定一个卷
  • -e : 设置环境变量;查看mysql
  • -d: 后台运行容器,并返回容器ID;

docker安装wordpress

拉取镜像

docker pull wordpress:latest

安装镜像并连接数据库

使用docker的mysql

docker run --name blog-wordpress --link wordpress-sql:mysql -e 500m -p 8083:80 -v /root/wordpress-html:/var/www/html -d wordpress

使用外部数据库

docker run --name wordpress-sql -e WORDPRESS_DB_HOST=10.1.2.3:3306 -e WORDPRESS_DB_USER=root -e WORDPRESS_DB_PASSWORD=123456 -d wordpress

WORDPRESS_DB_HOST参数是MySQL的数据库端口号,WORDPRESS_DB_USER是要数据库用户名,WORDPRESS_DB_PASSWORD是数据库密码。这里的WORDPRESS_DB_HOST参数不能填写localhost,因为这样会重定向到WordPress镜像内部的localhost,而这个镜像中实际上没有安装MySQL。所以这里需要填写本机IP地址,才能正确访问到Docker外部的本机的数据库。

因此需要注意,如果使用外部数据库的话,数据库的用户需要具有外部IP的权限,因为这次不是通过本机回环地址访问。默认情况下MySQL安装时候的ROOT用户只允许本地登录,所以可能需要配置允许用户远程登录。

docker常用命令

查看镜像

docker images

创建镜像

 docker create -it mysql:5.7

构造容器

# 构建容器docker build -t 镜像名称 . # 后面的. 指的是当前文件夹 (其实是Dockerfile存放的文件夹)# 建立映像文件。–rm 选项是告诉Docker,在构建完成后删除临时的Container,Dockerfile的每一行指令都会创建一个临时的Container,一般这些临时生成的Container是不需要的docker build --rm=true -t loen/lamp .

停止

# 关闭运行中的容器docker stop 容器ID

开始

# 启动一个已经停止的容器docker start 容器ID# 重启一个容器docker restart 容器ID

进入镜像

# 进入一个运行中的容器docker attach 容器ID

删除

# 删除容器docker rm 容器ID# 删除所有容器docker rm $(docker ps -a) # 删除所有镜像docker rmi $(docker images | grep -v RESPOSITORY | awk '{print $3}')

查看进程

# 显示全部容器docker ps -a# 显示当前运行的容器docker ps

导出容器

# 导出容器docker export 容器ID > xxx.tar

保存镜像

# 把 mynewimage 镜像保存成 tar 文件docker save myimage | bzip2 -9 -c> /home/save.tar.bz2

加载镜像

# 加载 myimage 镜像bzip2 -d -c < /home/save.tar.bz2 | docker load
回帖
全部回帖({{commentCount}})
{{item.user.nickname}} {{item.user.group_title}} {{item.friend_time}}
{{item.content}}
{{item.comment_content_show ? '取消' : '回复'}} 删除
回帖
{{reply.user.nickname}} {{reply.user.group_title}} {{reply.friend_time}}
{{reply.content}}
{{reply.comment_content_show ? '取消' : '回复'}} 删除
回帖
收起
没有更多啦~
{{commentLoading ? '加载中...' : '查看更多评论'}}