Docker 学习应用篇三:使用docker搭建的环境,安装thinksns
来源:互联网 发布:淘宝 安卓 旧版 编辑:程序博客网 时间:2024/05/24 00:35
Thinksns 是一个开源的社交网站,因为目前的项目需要用到这个,所以就下载一个安装试试看。
之前在windows上用了wamp,安装的很顺利。但是项目是要部署到linux上的。于是我便用了Docker
作为Docker的初学者,确实又是一个学习Docker的好机会。
安装thinksns,至少要apache或者nignx,然后数据库mysql,还有一个php的运行环境。自己又不会写DockerFile ,就在DockerHub上面拉了一个镜像,
在搭建环境,和以后使用环境的过程中,我们难免需要改一些配置,那么在Docker中如何修改容器中的配置呢 有两种方法:
1.在运行docker的容器的时候就把配置文件挂载下来,指令是:举例 -v /usr/data/mysite:/etc/apache2/ 这样的话,在本地的/usr/data/mysite文件夹下就可以修改apache2文件夹下的配置文件2.使用可交互指令,这样我们就可以到docker容器中去修改配置文件了。指令:docker run -i -t testcontainer -d testimages /bin/bash 然后我们就可以用docker attach 命令进入到docker容器中了
利用上面的docker镜像,用第二种方式生成一个docker容器:
docker run -i -t -p 8060:80 -v /User/chenyongkang/Documents/expower:/var/www/root/-name thinksns -d athimel/apache2-php5-mysql bin/bash
当然,前提是你要docker pull athimel/apache2-php5-mysql 把这个镜像下载下来。
然后我们可以执行docker attach命令,进入到容器
docker容器其实也是一个linux系统,但是它和虚拟机的工作原理也不同。docker容器启动只要几百毫秒,而虚拟机启动要几分钟。那么docker和虚拟机工作原理的区别是什么呢?
首先从下网上看这个图:
Server 最底层:就是虚拟机和docker运行的机器,比如个人电脑,云服务器。HostOS 最底层机器的操作系统,比如windows,Centos,MacOS 等等接下来就不一样了,虚拟机用的是Hypervisor 虚拟机管理系统,运行每个虚拟机的GuestOS,Guest OS即为虚拟机安装的操作系统,它是一个完整的操作系统内核。而Docker守护进程(Docker Daemon)。Docker守护进程取代了Hypervisor,是运行在操作系统之上的后台进程,负责管理Docker容器。它利用的是目前Linux内核本身支持的容器实现资源和环境隔离。
然后我们就可以把Docker容器当作一个linux系统来操作,用apt-get 下载vim,
apt-get update : 是同步 /etc/apt/sources.list 和 /etc/apt/sources.list.d 中列出的源的索引,这样才能获取到最新的软件包。然后 apt-get install vim
由于Docker需要安装php-curl 我想用最普遍的方法:使用phpize生成configure文件,然后make && make install最后在php.ini中添加加载模块的指令。可是我并找不到curl的扩展目录,ext/目录下没有curl文件夹,只好:
apt-cache search curl | grep php :搜索和当前php可用的curl扩展发现可以先下载php5-curlapt-get install php5-curl 如果下载失败,记得先apt-get update
然后解决了
下一步,填写完配置信息之后,出现
mysql根本无法启动,而且我也找不到/var/run/mysqld/文件夹,原来是这个镜像没有安装mysql,安装了php5-mysql 这是一个连接mysql和php的组件
里面并没有mysql,只能自己装了,或者重新写一个DockerFile。
安装了mysql之后,终于可以连接mysql了,
再往下走:
打开源码之后发现$_SESSION[]保存的信息在页面跳转之后会丢失,根据源码找到session文件保存的路径,发现里面有文件,但是居然是空的,按照网上的方法,修改php.ini 中session.use_trans_sid=1,
还是不起作用。
搞了半天也没安装成功,只好用lnmp 安装了。这个问题以后还是要解决的
- Docker 学习应用篇三:使用docker搭建的环境,安装thinksns
- Docker 学习应用篇之三: Docker的简单实用
- 【Docker学习】Docker 的安装与使用
- 【jeecg Docker安装】使用 Docker 搭建 Java Web 运行环境
- Docker学习--环境搭建和使用
- docker 安装 搭建 使用
- 【docker】docker环境搭建及使用
- Docker的环境搭建与使用
- 使用docker 搭建基础的 mysql 应用
- docker安装、使用学习
- 1.docker学习笔记:docker的安装和基本使用
- Docker学习1_CentOS6下docker的安装和使用
- Docker 学习应用篇之二: Docker的介绍和安装
- 基于docker的环境搭建
- mac 下使用Docker安装搭建tensorflow环境
- mac 下使用Docker安装搭建tensorflow环境
- mac 下使用Docker安装搭建tensorflow环境
- 使用Docker环境快速搭建靶机环境
- 子类覆盖父类方法问题
- 有序链表合并
- draggrid简单用法
- MySQL数据库如何解决大数据量存储问题
- Buffer对象,常用的Buffer方法;
- Docker 学习应用篇三:使用docker搭建的环境,安装thinksns
- 天平,紫书P157UVa839
- Java反射机制理解
- Java基础之集合框架--Collections.reverseOrder()
- C++复习第二天 友元
- nyoj 108 士兵杀敌(一)
- VS编译器为你报的那些错
- android 进程和线程的区别,以及系统的进程的基本知识
- 集合创建、添加、遍历