* armbian装docker+wordpress实现https访问
WordPress连接数据库失败处理方法
* 查看Docker容器环境变量
标注说明:
a. CONTAINER-NAME: 容器名字
b. CONTAINER-ID: 容器ID
用命令 Docker ps -a 可以查到上述信息
有下列3种方式:
1. Docker inspect
# docker inspect <CONTAINER-NAME> OR <CONTAINER-ID>
如:
# docker inspect WordPressTest1
2. 用env查看
# docker exec -it <CONTAINER-NAME> OR <CONTAINER-ID> env
如:
# docker exec -it b14df65ecd73 env
3. 进入容器后用env查看
# docker exec -it <CONTAINER-NAME> OR <CONTAINER-ID> /bin/bash
(容器提示符)# env
如:
# docker exec -it b14df65ecd73 /bin/bash
(容器提示符)# env
另: Docker使用--link参数可以把另一个容器的环境变量连接过来(没有测试), 可以用env查看到
* WordPress的Docker参数
WordPress的Docker需要的参数是从环境变量里取得.
读取代码在wordpress容器里的/var/www/html/wp-config.php文件, 相关的主要代码如下:
// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define( 'DB_NAME', getenv_docker('WORDPRESS_DB_NAME', 'wordpress') );
/** MySQL database username */
define( 'DB_USER', getenv_docker('WORDPRESS_DB_USER', 'example username') );
/** MySQL database password */
define( 'DB_PASSWORD', getenv_docker('WORDPRESS_DB_PASSWORD', 'example password') );
/**
*/
/** MySQL hostname */
define( 'DB_HOST', getenv_docker('WORDPRESS_DB_HOST', 'mysql') );
/** Database Charset to use in creating database tables. */
define( 'DB_CHARSET', getenv_docker('WORDPRESS_DB_CHARSET', 'utf8') );
/** The Database Collate type. Don't change this if in doubt. */
define( 'DB_COLLATE', getenv_docker('WORDPRESS_DB_COLLATE', '') );
可以看到以下环境变量参数:
WORDPRESS_DB_NAME: wordpress所用数据库名, 缺省为"wordpress"
WORDPRESS_DB_USER: wordpress访问数据库的用户名, 缺省为"example username"
WORDPRESS_DB_PASSWORD: wordpress访问数据库的用户密码, 缺省为"example password"
WORDPRESS_DB_HOST: wordpress访问的数据库地址端口(ip:port)
WORDPRESS_DB_CHARSET: 数据库字符集
主要用到前4个参数
* Docker的重启
# 重启docker
# service dockerd restart
# 重启容器,可通过portainer
# 查看容器id和名称
# docker ps -a
# docker restart bc7c8d4514fe
# 或
# docker restart mydb
* 宿主机(即物理机)与docker文件互传
# 宿主机传文件至docker容器
# docker cp 本地文件的路径 container_id:<docker容器内的路径>
# 容器传文件至宿主机
# docker cp container_id:<docker容器内的路径> <本地保存文件的路径>
# 这里的容器ID可以通过portainer或者命令“docker ps -a ”进行查看
* 容器里安装nano或vim
# apt-get update
# apt-get install nano
# 或
# apt-get install vim
* 容器自动启动
1.在使用docker run时,添加"--restart=always"参数
2.运行中的docker使用update时添加"--restart=always"参数
# docker update --restart=always wordpress
"wordpress"是容器名称, 也可以写容器ID.
2.运行中的docker使用update时添加"--restart=always"参数
# docker update --restart=always wordpress
"wordpress"是容器名称, 也可以写容器ID.
例:
# docker update --restart=always DB4WordPress
DB4WordPress
# docker update --restart=always WordPress
WordPress
关机重启后, 数据库和wordpress容器都已启动, 确认命令有效.
* Docker镜像源
参考: Docker快速安装以及换镜像源
Docker的镜像配置文件是: /etc/docker/daemon.json, 当前内容是:
{
"bip": "192.168.30.1/24",
"data-root": "/opt/docker/",
"log-level": "warn",
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "5"
},
"registry-mirrors": [
"https://dockerhub.azk8s.cn"
]
}
* portainer在armbian上安装运行
# (安装应该是使用docker pull: docker pull portainer/portainer-ce)
# 安装使用apt-get
# apt-get install portainer/portainer-ce
# 启动
# docker volume create portainer_data
# docker run -d -p 8000:8000 -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce
* 查看某个docker容器占用的ip
# docker inspect openwrt | grep Address
其中“openwrt”是容器的名称
* armbian上安装Docker
参考官网安装说明: Get Docker
一般用官方的shell安装.
* 修改地址(临时, openwrt)
# ifconfig br-lan 172.17.0.3 netmask 255.255.255.0
# 设置网关
route add default gw 172.17.0.1
* Docker搜索镜像(img包)
# docker search 镜像包名, 如:
# docker search hugo
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
klakegg/hugo Minimal image and variants with batteries in… 99 [OK]
jojomi/hugo hugo, see https://gohugo.io 64 [OK]
monachus/hugo Docker image for building and running Hugo (… 42 [OK]
publysher/hugo Docker base image for static sites generated… 38 [OK]
jguyomard/hugo-builder Lightweight Alpine-Based Docker Image for Hu… 19 [OK]
cibuilds/hugo Docker image for Hugo, the static-site gener… 15
fundor333/hugo Docker file for build your Hugo for my site … 4 [OK]
peaceiris/hugo Hugo Alpine base Docker Image (Hugo extended… 4
solidnerd/hugo Hugo in a container 2 [OK]
yanqd0/hugo The smallest hugo image built from Alpine. 2 [OK]
muninn/hugo-caddy hugo + caddy + caddy hugo admin plugin + cad… 2
tarampampam/hugo Hugo (gohugo, static stite generator) applic… 1 [OK]
orus/hugo-builder Alpine with hugo, git and pygments installed… 1
dettmering/hugo-build Build a website with Hugo (gohugo.io) 1 [OK]
envimate/hugo Dockerized version of hugo cli https://gohug… 1
chabad360/hugo Build a static site with Hugo (includes Hugo… 0
vergissberlin/hugo-docker-watchtower Hugo with continues delivery after commits i… 0
simonszu/hugo An image for the hugo blog system 0 [OK]
webhippie/hugo Docker images for Hugo 0 [OK]
toschwarz/hugo-builder Hugo Builder Image 0 [OK]
svlentink/hugo Official Hugo static web gen. from Github (l… 0 [OK]
mazgi/hugo-static-website Docker image for static website by Hugo. 0 [OK]
sjugge/hugo Runs the latest stable Hugo static site gene… 0 [OK]
forestryio/hugo 0
endocode/hugo-website 0
*STARS越多越好(排在越靠前)
评论