前面文章中已经介绍过docker环境安装。这里具体讲解一下docker 的镜像构建,以及容器的运行;
之前讲到过,docker 有一个repository,所有的人都可以往上面发布镜像以及下载别人发布的镜像;
搜索镜像
打开 docker hub ,在右上角有搜索框可以搜自己想要的镜像;比如 ubuntu ,whalesay 等,根据自己的需要进行搜索;官网上以whalesay为例子;
2、选择安装镜像
- 根据官网demo 选择 docker/whaleasy 浏览器会打开这个镜像的仓库,下面还会有ubuntu15.10镜像的介绍。
镜像仓库包含了该镜像的相关信息如它包含了什么软件、如何运行它。或许你已经注意到了,Whalesay是基于Ubuntu的linux分发版本,接下来的步骤将会引导你在你的机器上运行Whalesay;
使用下面命令,出现下列信息证明成功;
$ sudo docker run docker/whalesay cowsay boo
Unable to find image 'docker/whalesay:latest' locally
latest: Pulling from docker/whalesay
2880a3395ede: Pull complete
515565c29c94: Pull complete
98b15185dba7: Pull complete
2ce633e3e9c9: Pull complete
35217eff2e30: Pull complete
326bddfde6c0: Pull complete
3a2e7fe79da7: Pull complete
517de05c9075: Pull complete
8f17e9411cf6: Pull complete
ded5e192a685: Pull complete
Digest: sha256:178598e51a26abbc958b8a2e48825c90bc22e641de3d31e18aaf55f3258ba93b
Status: Downloaded newer image for docker/whalesay:latest
_____
< boo >
-----
\
\
\
## .
## ## ## ==
## ## ## ## ===
/""""""""""""""""___/ ===
~~~ {~~ ~~~~ ~~~ ~~~~ ~~ ~ / ===- ~~~
\______ o __/
\ \ __/
\____\______/
当运行这个命令的时候,docker会先在本地查找他,若不存在,则会从docker hub上下载;
到此 官网的Whalesay 安装完成。
- Ubuntu15.10的镜像
这里自己需要一个ubuntu15.10的镜像,从docker hub 获取:
$ sudo docker pull ubuntu:15.10
15.10: Pulling from library/ubuntu
d0fa00decafb: Pull complete
392844978dc9: Pull complete
a3a0dd44a4bb: Pull complete
2804d41e7f10: Pull complete
Digest: sha256:ae24faeb7d968197008eb7fa6970d1aa90636963947fe3486af27b079cccfb17
Status: Downloaded newer image for ubuntu:15.10
显示上述信息说明ubuntu15.10镜像安装完成;
附:查看本地镜像命令:
$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
ubuntu 12.04 673a64f026f0 5 days ago 137 MB
hello-world latest 0a6ba66e537a 8 weeks ago 960 B
docker/whalesay latest ded5e192a685 6months ago 247 MB
myjob1 latest 764c656f5fc5 5 hours ago 133.5 MB ubuntu 15.10 2804d41e7f10 6 days ago 133.5 MB
3、启动容器
我们可以起一个linux的容器,来进行我们的安装部署,我需要在ubuntu15.10的镜像上启动我需要的容器 myubuntu:
使用如下命令,然后进入容器,进行自己的操作:
$ sudo docker run -ti --name myubuntu ubuntu:15.10
容器启动,具体信息如下,通过ls 可以查看目录,进行下一步需要的操作,比如应用程序的部署等:
lin@lin166:~$ sudo docker run -ti --name myubuntu ubuntu:15.10root@f5480a8ba103:/# lsbin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr varroot@f5480a8ba103:/#
注意:
每次 使用docker命令都需要使用sudo
这里把当前用户加入到docker组就可以直接使用命令,而不用每次都加sudo
$ sudo groupadd docker
#改完后需要重新登陆用户
$ sudo gpasswd -a ${USER} docker
4、修改已有镜像,发布成为自己需要的镜像
注意:需要使用上面创建的容器的ID;
- 先使用下载的镜像启动容器:
lin@ubuntu:~$ docker run -t -i myjob1 /bin/bash
root@b5b89b89919a:/#
- 在容器中添加jdk;
root@b5b89b89919a:/# apt-get install openjdk-7-jdk
- 提交容器
lin@ubuntu:~$ docker commit -m "Added jdk" -a "Docker Newbee" b5b89b89919a ubuntu15.10:v2
c72878b77cf5d19d64c9e3b53ca9ab69ebdaaac51c6f75bae4e596b7e89cb3da
其中 -m 类似一个版本记录,告诉自己添加了什么东西,-a 指定更新的用户信息 之后是用来创建镜像的容器的 ID;最后指定目标镜像的仓库名和 tag 信息。创建成功后会返回这个镜像的 ID 信息。
然后查看docker images 就会发现多了 ubuntu15.10 v2 的镜像
然后我们就可以直接使用这个含有jdk 的镜像,当然大家可以根据自己的需要安装自己需要的公用的东西;