mac OS中使用docker安装ubuntu+lnmp
Posted IT猿圈
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mac OS中使用docker安装ubuntu+lnmp相关的知识,希望对你有一定的参考价值。
一直想自己操作一遍mysql的主从数据同步,但是无奈一直困于难以复制两台一模一样的虚拟机。下载VirtualBox安装虚拟机,但是镜像下载太慢了啊,此时不选docker,更待何时。废话少说,直奔主题。
一、安装ubuntu
1、查找ubuntu镜像
docker search ubuntu(下载下边star最多的)
2、拉取(下载)ubuntu镜像
docker pull ubuntu
3、查看一下已安装的镜像
docker images(从下边列表中可以看见我们刚安装的ubuntu)
4、运行ubuntu镜像
docker run -it -d --name myubuntu -p 8088:80 ubuntu
-d后台运行
–name自定义容器名
-p指定端口映射,前者为虚拟机端口,后者为容器端口
成功后返回id
5、查看我们已经在运行的容器
6、查看容器信息
docker inspect id(id为容器的id)
7、进入容器
docker exec -it id /bin/bash(id为容器id,也可以替换成容器名)
看到root@容器id:/#就说明已经成功进入到容器了(退出容器执行exit即可)
此时就可以使用这个ubuntu系统了,它是一个干净额ubuntu系统,各种东西都需要我们安装。连wget命令就没有。下边进行nginx的安装,安装的过程中,需要安装哪些命令我们再进行安装。
二、安装LNMP
1、首先执行一下apt-get update,然后安装wget(apt-get install wget),这样我们才能安装其他的一些东西
2、然后我们选择使用lnmp的一键安装包来安装LNMP环境(https://lnmp.org/faq/lnmp-software-list.html)
wget http://soft.vpser.net/lnmp/lnmp1.6.tar.gz -cO lnmp1.6.tar.gz && tar zxf lnmp1.6.tar.gz && cd lnmp1.6 && ./install.sh lnmp
(1)提示安装mysql的版本
下边会提示是否使用InnoDB引擎(建议使用)
(2)安装php
后边就是它安装的过程,十分的漫长(几十分钟到一个小时不等)
看到这个就安装完成了(安装的mysql、php、nginx在/usr/local目录下 。mysql配置文件在/etc/my.cnf)
上边运行镜像时,映射的虚拟端口为8088。(也可以使用docker ps看一下我们运行的ubuntu容器映射的端口)然后在浏览器中输入localhost:8088,看到下边页面就说明成功了。(想配置虚拟主机,可去官网查看:https://lnmp.org/faq/lnmp-vhost-add-howto.html)
三、将安装好的ubuntu+lnmp系统打包成镜像
玩儿过虚拟机的应该都知道,虚拟机是可以克隆的,克隆出来一模一样的一台(操作过的应该都知道,恶心的一批),现在使用docker实现一下。(先退出之前的的容器 exit)
(1)将容器打包成镜像
docker commit -m "提交信息" --author "作者" 镜像id 新镜像名 //关于基础命令,可查看上一篇文章
docker commit -m "打包一个干净的ubuntu+lnmp环境,原容器名myubuntu" -a "shulv" 93f570047ae5 myubuntu2
说明:
-m 提交时的说明文字
-a 提交的镜像作者
倒数第二个参数是上边已经运行的容器的id
最后一个参数为新的镜像的名称(也可以加上标签,比如myubuntu2:lnmp)
执行完上边的打包命令之后会得到下图:
说明镜像打包成功,此时再执行:
docker images
(2)启动新的镜像
现在我们启动刚刚打包的镜像:
docker run -it -d --name myubuntu2 -p 8089:80 myubuntu2
然后我们看看是否启动成功了
没毛病,容器启动成功。
(3)进入容器
docker exec -it 容器ID /bin/bash
(4)启动nginx,检查lnmp环境
然后我们验证一下是否成功了,在浏览器中输入localhost:8089(启动容器时映射的端口为8089)
OK,现在说明我们打包的镜像没问题。
前边我们说到虚拟机克隆,克隆出来的镜像很麻烦,如果我们换一台电脑,还需要将镜像传输到这台电脑中,然后安装。而docker就方便多了,他有一个远程的线上仓库(Repository),只要我们将打包好的镜像推到远程仓库中,那么我们在任何一台有网且安装了docker的电脑上都可以获取到该镜像,十分方便。废话少说,下边就开始将我们的镜像推到远程仓库。
四、将镜像推到远程仓库
(1)登录到dockerhub
这个是我们默认的镜像存放的地方,就像上边我们获取ubuntu镜像一样,其实也是从dockerhub上获取的。要想上传镜像到dockerhub,首先我们要登录它,如果还没有注册,可以去https://hub.docker.com 注册一下。注册完成之后就可以登录了
docker login
(2)将本地镜像推到远程仓库
docker push myubuntu2(镜像名)
被拒绝了,百度了一下,是因为我们需要更改镜像名前缀为我们的用户名
docker tag myubuntu2 shulv/myubuntu2:lnmp(将myubuntu2镜像标记为shulv/myubuntu2:lnmp镜像 其中shulv为用户名,其后的myubuntu2为仓库名、lnmp为标签)
更改完之后我们再推一次
docker push shulv/myubuntu2:lnmp
此时等待它推送完成就可以了
(3)拉取推送到远程的镜像
docker pull shulv/myubuntu2:lnmp
OK,整个过程就全部完成了。
总结:在整个过程中,需要我们对docker有一定的了解,熟悉常用的命令,并了解每一步操作的含义。关于基础命令自己也有总结,感兴趣的可以看一下。
IT猿圈
不做开始爱好者
长按二维码关注
以上是关于mac OS中使用docker安装ubuntu+lnmp的主要内容,如果未能解决你的问题,请参考以下文章