docker搭建web题目
基本搭建
一:lamp介绍&run
LAMP指的Linux(操作系统)、Apache HTTP 服务器,MySQL(有时也指MariaDB,数据库软件和PHP(有时也是指Perl或Python 的第一个字母,一般用来建立web应用平台。
找到一个合适的lamp镜像
1 | docker search lamp |
会出现很多,复制去https://hub.docker.com/找到相关介绍,确定具体使用哪种.
这里使用linode/lamp
1 | docker run -dt -p PORT:80 -v /opt/web:/var/www/web linode/lamp |
二: 进入容器配置apache2
1 | docker exec -it CONTAINERID /bin/bash |
参考https://www.linode.com/docs/websites/hosting-a-website-ubuntu-18-04/#install-mysql进行配置
进入容器后
1 | service apache2 start |
修改连接数等配置
1 | sudo cp /etc/apache2/apache2.conf /etc/apache2/apache2.conf.bak #做备份 |
拉到最后
1 | <IfModule mpm_prefork_module> |
ctrl+x退出,Y保存,ENTER退出
重启apache2
1 | service apache2 restart |
修改网页根目录等
1 | sudo nano /etc/apache2/sites-available/example.com.conf |
ctrl+x退出,Y保存,ENTER退出
1 | sudo a2ensite example.com.conf |
三:配置MySQL
1 | sudo mysql_secure_installation |
这里密码是Admin2015,官方没写,找了很久!!
基本是一路按照默认的一直ENTER就行(y和n大写的就是默认选项)
1 | service mysql restart |
四:修改目录用户组
权限介绍
https://blog.csdn.net/u013197629/article/details/73608613
1 | cd /var/www |
五:打包push到私有registry
1 | exit #退出容器 |
保存对容器的更改
动手之前,我们先到docker官网注册一个账号,这样我们才能将制作好的镜像上传到docker仓库,打开https://hub.docker.com/
打包镜像
**docker commit :**从容器创建一个新的镜像。
语法
1 | docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]] |
OPTIONS说明:
**-a :**提交的镜像作者;
**-c :**使用Dockerfile指令来创建镜像;
**-m :**提交时的说明文字;
**-p :**在commit时,将容器暂停。
实例
先把配置好的镜像重新打包
1 | docker commit -a "adsry" -m "the_signature_thinkcmf" d99d64836722 adsry/the_signature:thinkcmf |
注意adsry/the_signature:thinkcmf
前面adsry/the_signature是镜像名称,而且必须加作者名字,不然后面push会报错,后面是tag
改镜像的tag
后面是改的名字和tag
最后是push到私有仓库
传到registry
docker其它知识
一:docker上传本地文件
怎样将本地文件上传到docker容器?docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中。在往docker容器中直接使用rz上传文件时,速度很慢,所以我们会考虑将本地文件上传至容器。
首先我们要进入docker容器内部
查找所有容器id
1 | docker ps -a |
查找容器长ID
拷贝本地文件到容器
1 | docker cp 本地路径 容器长ID:容器路径 |
二:docker相关操作
- 查看镜像—-docker images
- 查找镜像—-docker search xxx
- 查看容器映射端口—-docker port 容器id
- 打开容器—-docker start 容器id
- 进入容器bash—-docker exec -it 容器id /bin/bash
三:docker删除镜像
本以为删除镜像会很简单,但是删除过程中并不是那么顺利。
- 查询镜像
现在想删除第一个,ID为 99f85991949f 的镜像。
从上面看出,需要先停到ID为 67*** 的容器。
- 查询容器
- 先删除容器
上面可以看出,容器已经删除。
- 删除镜像
注意点:
删除前需要保证容器是停止的 stop
需要注意删除镜像和容器的命令不一样。 docker rmi ID ,其中 容器(rm) 和 镜像(rmi)
顺序需要先删除容器
四:一些注意点
问题点:Not Found The requested URL
开启apache重写
先开启重写功能
1 | sudo a2enmod rewrite |
再修改/etc/apache2/apache2.conf下对应的配置文件
1 | <Directory /> |
还有一些就是Php的依赖问题
1 | apt-get install php5-gd |
参考链接: