备注:在上一篇博文当中,修改命令,已经省略掉了sudo。所以,直接输入docker,就可以查看docker相关的命令和所需要的参数。
另外,后缀添加--help也是可以的。
方法一:镜像以Redis为例,pull镜像
1) 拉取redis镜像,并查看当前系统存在的所有镜像。
docker pull redis
docker images
2) 创建守护式容器,并命名为myredis.通过ps -a查看容器
docker run -d --name=myredis redis
3) 以指定格式查看容器中应用的ip地址。
docker inspect --format='{{.NetworkSettings.IPAddress}}' myredis
4)使用本地redis-cli客户端链接指定的redis服务器:
redis-cli -h 172.17.0.2 -p 6379
5) 倘若没有redis-cli客户端,请参考前面redis部分。
方法二:docker run创建容器。使用docker commit -m “”,提交修改后的docker容器。
1)拉取已有镜像ubuntu14.04。
2)启动并进入容器。
docker images 查看镜像,记住ubuntu的image id
docker run -i -t 指定的IMAGE ID
3)添加、删除或者修改ubuntu容器。
例如添加nginx服务器,如果出现以下问题,很有可能是ubuntu14.04的镜像源尚未更新,依赖包出现问题
可以通过sudo apt-get update更新源和sudo apt-get upgrade升级依赖包
由于默认时区的关系,可能需要执行dpkg-reconfigure tzdata 来修改所在时区,选择Asiza,选择shanghai
好了,现在可以通过apt-get获取你所需要的软件了,如nginx。
输入nginx -v查看版本号,说明成功安装。
4)接下来,就是将容器转换成镜像。
输入exit退出容器:
而查看容器的结果如下docker ps -a
查看images的结果如下docker images
最后保存刚刚修改的内容信息:docker commit -m “说明信息” -a "用户信息" 容器ID 用户名/仓库: TAG信息
其中, -m 来指定提交的说明信息,跟我们使用的版本控制工具一样; -a 可以指定更新的用户信息;之5c9ee44a971c后是用来创建镜像的容器的 ID;最后指定目标镜像的仓库名和 tag 信息。创建成功后会返回这个镜像的 ID 信息。
再次使用docker images
命令就会发现此时多出了一个我们刚刚创建的镜像:
当然如果有兴趣的话,可以将刚保存的镜像上传到dockerhub(需要**翻**墙)上,也可以搭建自己的仓库,也可以上传到其他仓库。
接下来再写一个案例熟悉一下,搭建JAVA的开发环境。
1)拉取centos镜像,并查看image。
docker pull centos
docker images
可以看到此时出现了centos的image镜像。
2)根据上述镜像,创建容器,并命名为mycentos。
docker run -i -t --name=mycentos centos
可以看到在创建完容器之后,已经进入到容器当中并且显示为命令行。
3)此时,我不小心关闭了命令窗口,name就需要重新进入docker容器当中。可以使用如下的命令:
docker ps -a 查看存在哪些container;
docker attach 容器名称或者CONTAINER ID就可以重新进入容器;
可以使用exit命令退出容器。
4)在容器当中安装JDK.
安装JDK没有什么可以讲,直接yum命令安装也行,拉取源码安装也行。不过记得一定得配置环境变量,使用yum命令的时候,貌似已经帮你配置了。使用命令如下:
yum install java-1.7.0-openjdk
好吧,还是查看下环境变量,发现什么鬼都没有。
然而,然而,连vim编辑器都没有。
yum install vim安装下就好了
安装完vim后,添加环境变量。
修改如下内容,只要能找到bin目录下的java就好了。
最好执行一下。
校验是否配置正确,并查看版本信息。
5) 在容器当中安装tomcat。
下载对应版本到本地。
上传后cp到docker container中,并解压,移动tomcat到指定目录下,
exit退出容器。
提交容器为镜像,docker commit mycentos mytomcat8
停止mycentos容器
运行新的容器mytomcat8,指定端口号8888映射到8080.
进入容器,运行tomcat
此时就可以访问到tomcat的主页了---------注意:此时访问页面的ip地址和端口号,为映射的,并非容器自身的端口号和IP.
既然配置完,就全部删除了吧。
<<<先删除所有容器>>>>
<<<再删除所有镜像>>>