docker保存自定义容器

上一篇介绍如何搭建lnmp环境
现在基本的环境已经部署好了,想把整个容器保存起来,像备份系统一样把容器备份起来。
把容器先保存成镜像,下次直接用保存起来的镜像来生成容器实例来运行,这样运行起来的容器是自己定义好的(自己备份时候的)样子。
将容器保存成镜像

debian是容器名称
mydebian 是保存的镜像名称

再查看镜像列表,就已经多了一个mydebian容器了

保存成镜像后,你就可以用这个镜像生成无数个容器了,而你的镜像不受任务影响。

还可将镜像保存成本地文件

将mydebian镜像保存成当前目录的mydebian.tar的文件

当然也可以从当前的文件中导入到镜像

将mydebian.tar文件导入成testdebian镜像

再查看镜像列表

testdebian已成功导入
当然你还可以把mydebian.tar拷到别的机器上导入。

我觉得开发人员使用docker可以像使用git的分支一样使用。需要一个环境的时候,生成一个docker容器,然后在容器上折腾,等折腾完了,不需要了再把容器删除了即可。等需要另外一个环境,再生成一个容器折腾。
对于我这种时常需要切换不同环境的开发者来说,docker可比虚拟机要好用多了。

开发人员打开docker的方式

以前写过一篇mac下利用docker搭建开发环境的文,但那时是用的boot2docker作为客户端搭建的,现在docker原生支持mac了,方便了许多。
首先,我是不建议直接在macOS系统中直接搭建各种开发环境的,一来会把软件装多了会把mac系统扰乱。会出现各种莫名其妙的环境问题。二来如果遇到环境要升级的问题也会很乱,三来macOS系统基本上也是一年升级一次,也会使各种搭好的环境出现问题。
一个解决办法是用VirtualBox来装虚拟机来解决,以前我也是这么干的,但虚拟机很重,想重新搭个环境要花比较长的时间,比如突然想下ubuntu16.10系统搭个开发环境。先下载系统,安装系统进虚拟机,然后再启动系统装环境。
现在有了docker一切问题都得到解决了欧耶。
就像船和集装箱一样。只要符合标准的集装箱,不用处理都可以直接往轮船上搬。而docker就是轮船这样的一种角色。一个装容器的容器,只是符合它的标准的容器都可以往上面装。
如果你想装个python环境,直接放个已经装好python环境的容器去运行起来,就是一个现成的python环境;
如果你想装一个nginx来运行web,直接放个已经装好nginx环境的容器。就是一个nginx环境了。
如果你现在用的是python2.7的环境,突然要用到python3,也可以直接装个python3的环境就是了,还避免了环境干扰。而且用完即删。
docker的发明最大的意义就是用于运维,但对于一个开发人员,也同样需要。

一.mac上装docker
到这里去下载安装即可
安装完成后运行,在右上角有一个小鲸鱼图标,docker就正常启动了,可以在终端里使用docker命令。

二.列出本地镜像
1.列出已存在本地的镜像

 

现在是空的,一个镜像也没有
假如我要装个nginx环境。怎么办?先去搜索一下吧

2.搜索镜像

 

搜出一大堆,下载第一个吧

3.下载镜像
$ docker pull nginx
等待完成,然后再用docker images命令列出本地镜像

 

nginx镜像已下载到本地

4.运行镜像,也就是用镜像来实例化一个容器并运行(可以拿面向对象中的类和实例来作比)

 

意思是:用nginx镜像,来运行一个容器,容器的名字叫webserver,-d 是后台运行,-p是绑定端口,在这里只绑定了80端口(即把本机的80端口和容器的80端口绑定,访问本机的80端口相当于访问容器的80端口)
成功生成容器并运行,查看一下运行的实例吧

5.查看运行实例

 

从左到右分别是容器id,所使用的镜像,运行时的命令,创建时间,状态,绑定的端口,名字
容器已经运行起来
在浏览器上输入http://localhost/,会出现nginx 欢迎页面

6.关闭容器

7.其它的一些常用命令

列出所有的容器(包括运行中的,和已经停止的)
docker ps -a

启动一个容器

 

删除容器

docker rm -f webserver (强制删除,如果容器正在运行,这条命令会先关闭容器,再删除之)

删除镜像(记住是镜像,不是容器)

 

这个是基础,下一篇打算写写可以更高效利用docker来开发

mac安装树莓派系统

我的电脑是mac,其它window和linux系统的看官方的安装文档

一.下载系统

到树莓派官网下载raspbian系统,我下的是最新的版本2017-01-11-raspbian-jessie-lite

二.安装系统

1,把sd卡用读卡器插入mac,在mac磁盘工具中把它格式化。(其实用android手机当读卡器也可以,我刚拿到板的时候手上没有读卡器,就用android手机代替读卡器了)

2.在Mac命令行输入df -h,找到挂载的SD卡,我的sd卡挂载信息如下

3.卸载分区
使用diskutil unmount将这些分区卸载

4.找到设备
通过diskutil list的输出来找到设备,我这里找到的设备是

5.开始写入系统镜像

if参数为镜像文件,of参数为设备名称
等待写入成功

6.用diskutil unmountDisk卸载设备

三,启动系统

将SD卡插入树莓派中,连接显示器,鼠标,键盘,网线,最后接入电源启动树莓派。红色电源灯是一直亮的,绿色的状态灯系统刚启动时是很快地一闪一闪的,系统启动完成后闪动频率会很低,不动的时候是基本不闪的

正常的话,屏幕上会输出树莓派启动信息。启动完成后,登录进入系统。树莓派系统默放的用户名是pi,默认的密码是raspberry。

登录进入系统后,为了能远程登录。需要打开ssh登录(raspbian系统默认是不开启ssh的)。运行raspi-config 进入设置允许ssh登录。打开后就可以用ssh客户端登录树莓派了。