安装 docker
docker 常用操作
docker run xxxx -d 名称 # 后台运行一个容器
docker run xxxx -it sh # 前台运行一个容器
docker rmi -f xxxx 强制删除镜像
docker start xxxx
docker restart xxxx
docker stop xxxx 停止窗口
docker rm xxxx 删除停止的容器
docker exec -it nginx sh # 挂载入容器, 使用 exit 退出
docker logs nginx # 看日志
docker logs --tail 10 nginx # 看最后几条目录
docker cp uploads.ini wordpress:/usr/local/etc/php/conf.d/ # 复制文件进容器或反向
docker ps -sa 列出所有容器
docker inspect nginx # 查看容器的配置
常用 linux 操作
mv 移动文件
cp 复制文件
mkdir -p 创建文件夹
设置网络
docker network create -d bridge xWeb
创建一个 network 给 wordpress 与 mariadb 一起使用
安装 mariabd
docker run --name mariadb \ # 容器名称
--network xWeb \ # 容器使用的网络, 这时准备与 wordpress 使用同一个网络
-v /home/docker/mariadb/var/lib/mysql:/var/lib/mysql \ # 将容器中数据的目录保存至外部目录。
-e MYSQL_ROOT_PASSWORD=xxxx \ root r 密码
-e MYSQL_DATABASE=wordpress \ 自动创建一个库
-e MYSQL_USER=wordpress \ 自动创建一位用户
-e MYSQL_PASSWORD=xxxx \ 自动创建用户的密码
-d mariadb
- 因为只准备为 wordpress 使用,所以就不将 mysql 端口暴露出来了
- 使用 -v 参数时发生的一个问题。使用 -e MYSQL_DATABASE=wordpress 启动容器时会自动创建库,但是设置 -v 后会无法创建库, 使用 -e MYSQL_USER 会自动创建用户,但是设置 -v 后也会无法创建用户
- 原来准备将数据保存到外部目录的。 有需要的话,在容器中 dump 出来然后 docker cp 出来
- 使用自动创建用户,启动容器后,wordpress 访问会有问题,需要进行如下操作
docker exec -it mariadb sh # 进入容器 mysql -u root -p xxxx # 登录 mysql ALTER USER 'wordpress'@'%' IDENTIFIED BY 'xxxx'; 重新设置一次密码
安装 wordpress
docker run --name wordpress -p 8081:80 --network xWeb -d wordpress
# 也可以不暴露端口,可以与 nginx 使用同一个 network, 然后在 nginx 中暴露端口。 不过考虑到 nginx 也要中转其它应用的端口数据。 所以 wordpress 开放一个外部端口至内部的 80 , 当然也可以使用 localip:8081:80 。 现在 8081 也会暴露到公网中了
# 设置 wordpress 时,如果设置首页地址时,页面挂了, 可以要进入 docker 数据库手工设置首页
update wp_options set option_value = 'http://www.abc.com' where option_name = 'siteurl' or option_name = 'home';
# 首页设置 http://www.abc.com, 如果 nginx 中使用了 ssl , 然后将数据转到 wordpress:80 ,那么访问地址可以是 https://www.abc.com, 但是页面内容中引用还是 http://www.abc.com/xxx.css 之类的, 浏览器提示混合内容。 这时安装 Really Simple SSL 插件可以将页面中的链接都格式化为 https://www.abc.com/xxx.css
设置上传文件大小限制
vim uploads.ini
file_uploads = On
memory_limit = 64M
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 600
docker cp uploads.ini wordpress:/usr/local/etc/php/conf.d/ # 将上传配置复制到 dcoker 中
docker restart wordpress
安装 nginx
mkdir -p /home/docker/nginx # 创建目录,准备用来挂载到 docker 中,用来保存自定义的配置文件
docker pull nginx:latest
# docker run --name nginx \
-p 80:80 -p 443:443 \
-v /docker/nginx/conf.d:/etc/nginx/conf.d \ # 将外部的 conf.d 目录挂载入容器
-d nginx
docker exec -it nginx bash
# 因为 nginx 容器的 nginx.conf 会载入 conf.d 下的所有 conf 配置 , 所以在外部配置一个目录并挂入容器, 用来存放工作配置会方便一些。
在 conf.d 下修改配置后,然后 docker restart nginx 就可以了
其它
...