您的位置:首页 > 运维架构 > Docker

Docker系列三

2015-12-23 01:09 573 查看
在Docker系列一和二,已经安装好docker,并能启动、停止docker容器了,容器是属于Docker生命周期中的启动或执行阶段,在系列三就来了解下Docker生命周期的构建、打包阶段 – 镜像

Docker镜像是由文件系统叠加而成的,其最底端是一个引导文件系统bootfs,位于bootfs之上的是root文件系统rootfs, 如Ubuntu系统或Centos系统。

Docker采用了一种写时复制(copy on write)的技术,加上镜像分层框架(image-layering framework),可以快速构建镜像并运行包含自己的应用程序和服务的容器。

列出本地Docker主机的可用镜像

命令:

docker images



这些是之前创建容器时,下载保存在本地宿主机的镜像。

查找Docker Hub上的公共可用镜像

命令:

docker search mysql

这个命令查找所有带有mysql的镜像,这些镜像已经可以运行mysql服务了,拉下来就可以运行使用的了。



现在拉取marvambass/mysql这个镜像到本地看看,这是一个基于Ubuntu14.04的Mysql Server:



基于这个镜像启动一个容器:



看看关于mysql文件的位置:



启动数据库
service mysql start
,发现启动失败:



看了数据库的版本信息后,发现是使用apt软件包安装的方法安装的mysql:



在Ubuntu环境下,软件包通过apt-get install方式来安装的,当该软件包出现问题的时候,可以通过dpkg-reconfigure命令对原来的软件包进行修复:

dpkg-reconfigure mysql-server-5.5
– 注意: 这里的数据库版本要对应安装的版本

执行这个命令后,重新输入一下root的密码即可,完成后,再次启动数据库服务,成功:



注意:

在采用dpkg-reconfigure方式修复mysql后,会有这样一个问题,即mysql数据用户会丢失掉,所以,针对服务器上mysql的用户,还得作一次修复,可以通过以下命令来处理:

GRANT ALL PRIVILEGES ON db.* TO user@localhost IDENTIFIED BY “pass”;


这样就可以还原之前系统中的那些用户。

到这里,从Docker Hub搜索一个现有的镜像,到启动新容器,可以很快部署一个服务,而且,实现了开发环境和生产环境的一致。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ubuntu docker