一.Docker的环境搭建
前言:本章介绍下在Ubuntu上的环境搭建过程
1.首先介绍下Docker:
PS:具体的介绍我在这里就不再赘述了,本文主要具体介绍下搭建过程与使用方法。
2.那么首先我们来搭建Docker服务
①:命令:uname -a(查看当前Linux的内核版本)
保证内核版本高于3.08否则会出现安装失败
②:命令:sudo apt-get install -y docker.io
ps:有的教程会指出使用 sudo apt-get install docker ,该命令下安装的docker版本号可能过低,可能出现这种那种问题。
运行命令:sudo ln -sf /usr/bin/docker.io /usr/local/bin/docker
运行命令:sudo sed -i '$acomplete -F _docker docker' /etc/bash_completion.d/docker.io
安装完成后运行命令 docker version查看是否安装成功
至此,docker服务已经搭建完毕了。
3.创建docker容器的镜像
①:命令:sudo docker pull ubuntu:14.04//搭建容器的环境
PS:过程大概需要下载60M左右的文件,会耗费一点时间(建议在VPN环境下)
②:命令:sudo docker images //查看镜像
Ps:这是我所创建的一些镜像,可以看到最小的镜像只有100多M。
4.拥有镜像之后,可以通过镜像创建容器
这里有一个警告:创建 的容器在exit后无法保存修改。(具体解决办法在后面会介绍)
我们可以通过IMAGE ID 或者REPOSITORY来创建容器。
命令:sudo docker run -i -t -v /home/lwc/:/data/software/ 4a725d3b3b1c /bin/bash //启动容器
其中
ps: docker run <相关参数> <镜像 ID> <初始命令>
-i:表示以“交互模式”运行容器
-t:表示容器启动后会进入其命令行
-v:表示需要将本地哪个目录挂载到容器中,
格式:-v <宿主机目录>:<容器目录>
-v 参数我推荐在创建第一个容器的时候加上,把宿主机的你想要的文件copy到容器的你想要的位置。
比如说你的宿主机上有jdk 你可以吧jdk打个包copy到home目录下然后跟平时一样搭建好java的开发环境。
注意:先别急着exit
运行命令:sudo docker ps//查看目前正在运行的docker
可以看到你正在运行的容器信息,
前面我提到若过现在你exit那么就不会保存你的修改。
不过你可以把这个容器保存提交为一个新的镜像
命令:docker commit CONTAINER ID 你的自定义的新容器的名字//只有这个方法能把操作过的容器保存起来以后接着用
注意:现有镜像后有容器
保存之后 运行:exit。
接着命令:sudo docker images就可以看到做过修改的容器被保存提交为新的镜像。
二:docker的使用:
迁移容器和镜像:
export与import命令使用:
export导出容器会丢失历史记录和元数据,类似与快照
先创建测试容器:
$ sudo docker exec web touch /opt/test.txt
$ sudo docker exec web ls /opt
test.txt
执行导出:
$ sudo docker export web > web.tar
执行导入:
$ cat web.tar | sudo docker import - web:v2
$ sudo docker images
wKiom1aHmtuhyu9UAAAHiNrmLo0553.png$ sudo docker run -itd –name web_v2 web:v2 /bin/bash
启动这个镜像要加/bin/bash,否则报错Error response from daemon: No command specified
$ sudo docker exec web_v2 ls /opt
test.txt
总结:通过export命令也可以将容器里的数据保存,并可以迁移到别的docker主机
save与load命令使用:
一般用于迁移镜像到别处
导出:
$ sudo docker save web > web.tar
导入:
$ sudo docker load < ubuntu.tar
注:不会丢弃历史记录和元数据,并可以回滚版本。启动不用加/bin/bash
结尾。