
服务器上程序越来越多,它们的命令都是啥来着?
在公司学习了Docker,发现它对不会背命令的人非常友好。
emmm,把程序丢到Docker上!
迁移全过程
(22:00)-开始
- 文件备份 ->完成!
- 数据库备份->完成!
- ssl证书备份->完成!
- nginx规则备份->完成!
万事俱备,准备迁移博客。
(22:30)-拜拜!CentOS
- 云后台登录
- 更换操作系统
- Ubuntu 16.04 x64
- 完成
几秒钟,独一无二的镜像消失在了这个世界上。CentOS,再见。
(22:40)-你好呀,Docker和小伙伴们
emmmm,1点前应该能睡觉吧。
像这样安装Docker-CE。
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
$ sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io
$ sudo gpasswd -a ${USER} docker
# link: https://docs.docker.com/install/linux/docker-ce/ubuntu/
添加了官方仓库,并且装好最新了的docker-ce。
装上最新的docker-compose!
$ curl -L https://github.com/docker/compose/releases/download/1.25.0-rc1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
$ chmod +x /usr/local/bin/docker-compose
$ sudo reboot
$ docker-compose -v
装上实用的Docker面板
$ docker volume create portainer_data
$ docker run -d -p 外部端口:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer
# 浏览器访问 ip:外部端口
(23:25)-漫无止境的上传
新机是没有FTPServer的!
WinSCP终于连接上了!
上传速度真慢,转啊转啊。
文件备份里还有上个月的文件备份???
- 文件备份上传&unzip ->完成!
- ssl证书上传->完成!
(00:50)-请出大神的DNMP
DNMP是yeszao大神做的Docker LNMP一键安装包。
$ git clone https://github.com/yeszao/dnmp.git
# 修改配置文件!PHP,MySql,Nginx[证书,规则,目录,PHP版本]
# https://github.com/yeszao/dnmp#2%E5%BF%AB%E9%80%9F%E4%BD%BF%E7%94%A8
$ cd dnmp
$ cp env.sample .env
$ cp docker-compose-sample.yml docker-compose.yml
$ docker-compose up
(01:40)-宝贵的数据恢复
快两点了!?
DNMP自带phpMyAadmin。
- 建立数据库,恢复备份数据 ->完成!
- 建立WP需要的数据库账号 ->完成!
- 写段PHP测试一下 ->完成!
- 修改wp-config.php ->完成!
注意db_server地址:mysql
(2:00)-网站打不开了
好困,泡杯浓咖啡。
浏览器地址栏->www.azimiao.com->回车,一气呵成!
500错误! ???
nginx日志:
#nginx error log
PHP:Call to undefined function mysql_connect()
WordPress在php7.2上不应该调用mysqli
么?
嗯,容器没装mysqli
扩展。
docker ps
# 上文找到了 php72 容器id 3584bcd6a026
docker exec 3584bcd6a026 docker-php-ext-install mysqli
docker restart 3584bcd6a026
ojbk!地址栏->www.azimiao.com->回车,一气呵成!
建立数据库连接时出错???
找Bug……
第二杯咖啡……
找Bug……
删掉wp-config.php让wp自己生成就好了?!
wp没权限建立文件?手动复制!
访问成功!
(2:50)-WP没有权限上传文件?
创建/2019/04/a.png失败,上级目录没有写入权限
进入php容器
$ ls -l www
所有者uid 1000 ?
$ ps
# php user www-data
$ chown -R www-data www
上传成功
(3:45)-封闭无用端口与服务
好困,撑不住了。
操作中………………
操作中………………
操作中………………
完成。
常见问题记录
-
docker宿主机与容器主机映射卷文件权限不统一
使用docker run 命令运行容器时,可以通过user参数指定运行用户(uid)和组(uid),和主机一样即可。
至于docker-compose,yml里试着添加user参数,打包完成,但容器运行秒挂。 -
mysql的地址在哪
容器每次重启,内部ip可能发生变化。
DNMP内可以填mysql,或者修改配置文件,固定Mysql容器IP。