MAC下 docker 新手使用指南
mac系统
1、下载安装
2、到应用程序下运行,boot2docker应用,会打开一个终端,接下来的操作都在这个终端里面完成。
3、搜索docker hub里面的镜像,下载并使用镜像:
搜搜名称里面包含ubuntu的相关镜像,会列出当前搜索结果
#docker search ubuntu
我们下载名称为ubuntu的镜像,第一个是官方提供的
#docker pull ubuntu
等待下载完成,镜像就可以使用了,默认下载的是latest版本!
4、下载完成后,查看当前的镜像列表
#docker images
可以看到我们刚刚下载的镜像就在下面
5、运行镜像文件,也就是创建一个容器
#docker run -t -i ubuntu
这样就可以创建一个ubuntu liunx容器了,进入之后,就像操作一个ubuntu虚拟机一样,可以安装文件,搭建环境开始干活了。
6、以php环境为例子进行安装,建议直接安装lnmp集成安装包即可
7、安装完成后,启动nginx,php,mysql
8、查看当前运行的容器id
#docker ps -a
9、提交镜像的改变,以保存当前快照否则,下次运行这个镜像的时候之前安装的东西就没有了。。
#docker commit -m ‘install lnmp’ 容器_ID ubuntu:lnmp
刚刚安装完lnmp这个过程会比较慢,请耐心等待。。。
10、执行完毕第9步骤之后,输入exit退出当前容器,做端口转发,以提供给宿主机来进行访问
#boot2docker ssh -L 8080:localhost:40080
执行后看到一个小鲨鱼表示执行成功接着执行
#docker run -it -p 40080:80 ubuntu:lnmp
#service nginx start
#service php start
#service mysql start
这样在宿主机上直接输入localhost:8080就可以访问网站了;
11、创建数据卷,让镜像的路径本地化到宿主机
docker run -v /Users/redrain/data/wwwroot:/home/wwwroot/default/www –name data-wwwVol ubuntu:lnmp
-v参数是设置映射目录,前面是宿主机的目录,冒号后面是镜像的目录,–name设置一个名称方便记忆,如果不指定会随机生成一个名字
docker run -it –volumes-from data-wwwVol ubuntu:lnmp
这样本地宿主机的/Users/redrain/data/wwwroot 就映射到了镜像里面的/home/wwwroot/default/www
12、端口和数据卷一起使用的方法
#docker run -it -p 40080:80 –volumes-from data-wwwVol ubuntu:lnmp
13、导出docker中的镜像文件,保存为ubuntu_lnmp.tar,这个过程根据镜像的大小,导出时间有所不同(5个G大约15分钟 mac)
#docker images
#docker save -o ubuntu_lnmp.tar ubuntu:lnmp
14、单个删除容器
#docker ps -a
#docker rm 容器_ID
15、一次性全部删除容器
#docker rm $(docker ps -a -q)
16、删除镜像文件(首先需要删除当前镜像下面运行的容器,执行第14步,或者第15步)
#docker images
#docker rmi 镜像_ID
也可以像删除容器一样,一次性全部删除docker 镜像
#docker rmi $(docker images -q)
17、导入docker镜像(可以从别人那里已经做好的镜像直接导入过来使用,非常方便)
#docker load –input ubuntu_lnmp.tar
18、docker直接启动和停止(已经终止或者正在运行的容器,新建容器#docker run 镜像名称:镜像tag)容器
#docker ps -a
#docker start 容器_ID
#docker stop 容器_ID
19、在后台运行docker容器,守护态运行
#docker run -d ubuntu:lnmp
当容器在后台运行的时候,我们有的时候需要进入容器,但是在后台运行并没有进入容器的窗口,这时候执行:
#docker ps -a
#docker attach 容器_ID
20、导出和导入容器
#docker ps -a
#docker export 容器_ID > ubuntu.tar
#cat ubuntu.tar | docker import – ubuntu:lnmp
21、启动容器的时候给容器指定一个名称 用 –name
#docker run -it –name web ubuntu:lnmp
22、容器关联
首先我们创建两个容器web和db
#docker run -it –nme db ubuntu:lnmp
#docker run -it –name web –link db:db ubuntu:lnmp (db:db 前面的db是容器名称,后面的是别名,可以随意叫)