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 images
![](https://img-blog.csdn.net/20151222231645319)
这些是之前创建容器时,下载保存在本地宿主机的镜像。
docker search mysql
这个命令查找所有带有mysql的镜像,这些镜像已经可以运行mysql服务了,拉下来就可以运行使用的了。
![](https://img-blog.csdn.net/20151222232445807)
现在拉取marvambass/mysql这个镜像到本地看看,这是一个基于Ubuntu14.04的Mysql Server:
![](https://img-blog.csdn.net/20151223003820622)
基于这个镜像启动一个容器:
![](https://img-blog.csdn.net/20151223005436699)
看看关于mysql文件的位置:
![](https://img-blog.csdn.net/20151223005532641)
启动数据库
![](https://img-blog.csdn.net/20151223010129469)
看了数据库的版本信息后,发现是使用apt软件包安装的方法安装的mysql:
![](https://img-blog.csdn.net/20151223010225779)
在Ubuntu环境下,软件包通过apt-get install方式来安装的,当该软件包出现问题的时候,可以通过dpkg-reconfigure命令对原来的软件包进行修复:
执行这个命令后,重新输入一下root的密码即可,完成后,再次启动数据库服务,成功:
![](https://img-blog.csdn.net/20151223010541680)
注意:
在采用dpkg-reconfigure方式修复mysql后,会有这样一个问题,即mysql数据用户会丢失掉,所以,针对服务器上mysql的用户,还得作一次修复,可以通过以下命令来处理:
这样就可以还原之前系统中的那些用户。
到这里,从Docker Hub搜索一个现有的镜像,到启动新容器,可以很快部署一个服务,而且,实现了开发环境和生产环境的一致。
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 默认壁纸历代记
- Ubuntu Remix Cinnamon 20.04 评测:Ubuntu 与 Cinnamon 的完美融合
- 关于Ubuntu 11.10启动提示waiting for the network configuration的问题
- 在 Ubuntu 桌面中使用文件和文件夹
- ubuntu下chrome无法同步问题解决
- Ubuntu Linux使用体验
- docker容器的网络信息查看
- 使用 GNOME 优化工具自定义 Linux 桌面的 10 种方法
- 以Ubuntu 9.04为例 将工作环境迁移到 Linux
- VirtualBox虚拟机XP与宿主机Ubuntu互访共享文件夹
- 从USB安装Ubuntu Server 10.04.3 图文详解
- Ubuntu 15.04 正式版发布下载
- Linux-Ubuntu 10.04安装Cadence-ic610 方法总结图解
- Ubuntu 12.04和Windows 7双系统安装图解
- 开机出现:grub rescue的修复方法
- Ubuntu连接Android真机调试
- 你应该选择 Ubuntu 还是 Fedora?
- 100 个最佳 Ubuntu 应用(中)
- 看看我的Ubuntu Linux截图
- Ubuntu 12.04 LTS服务器版安装过程及使用图解