Docker 入门
摘要
这几天做到一道测试题,需要以使用docker为前提搭建一个程序的服务,然后经历了一大波周折,终于初入门槛。最坑的是刚开始想在windows上搞,但是rj校园网总是和虚拟发生网卡冲突,所以索性用双系统。然后最悲哀的是,装了linux,刚开始还好好的,隔天起床,系统似乎出了问题给炸穿了,重启之后系统一直引导不起了。最后格了硬盘,从新再来,前前后后在linux系统上花了20多个小时,还把之前windows硬盘的文件都给格了,在此感谢老铁->考拉小无。心疼自己。
系统环境
deepin 15.4
安装步骤
1、安装docker
sudo apt-get install docker.io
2、启动docker服务
sudo service docker restart
3、运行实例—hello world
刚开始会有一段信息,大概就是你的容器内没有这个应用,然后它会自动从网上pull(拉取)下来
出现以下截图,证明你的docker服务跑起来了
当然,一开始忘了加上sudo,然后出现了 Cannot connect to the Docker daemon. Is the docker daemon running on this host?
部署服务器
这里主要装的是lamp的环境,用来跑php程序。刚开始的话使用的默认的hub上镜像,但对于我们国内的网速,等得头发都白了。之后就去找了国内的镜像。比如网易
速度确实飞一般感觉。说到这个,deepin的源也可用清华大学的源软件
然后说正事,拉取lamp镜像
sudo docker pull hub.c.163.com/public/lamp:latest
接着制定运行docker上的环境
sudo docker run -d -p 8080:80 -p 8888:3306 hub.c.163.com/public/lamp:latest
第一个-p制定映射宿主机访问端口8080到docker上的端口80,第二个为mysql的端口,作用类似
然后可以通过浏览器访问127.0.0.1:8080,出现
或者通过终端的curl 127.0.0.1:8080 测试。
进入docker容器
我比较喜欢用docker exec -it 镜像id /bin/bash。其他用法参考百度。
然后将主机代码传送到docker 可以用 add 或者 cp 命令。
sudo docker cp /var/www/html/test.php id:/var/www/
附
你可能在用到mysql函数,然后发现php文件无法执行。可以使用,这是在进入容器内执行的
apt-get install php5-mysql
或者
apt-get install php5-mysqli
当然,我做了这些之后还是没效果。然后整了好久,最后竟然是忘了重启Apache,之后就可以了,所以细节和重要。