Docker使用(二)

在安装完docker之后,开始使用。之前在网上了解到,docker基本运行过程就是,如果我要是想要用一个CentOS系统,以往的做法就是安装虚拟机,然后为虚拟机配置系统,这种情况不好的原因是,虚拟机系统太吃我们宿主机的硬件资源了。本人深有体会,在Mac上安了虚拟机之后,每天基本都会出现风扇狂转的情况,而且,virtualBOX的CPU占有率飙升。而我们使用docker,如果想要使用CentOS系统,只需要下载一个CentOS的镜像,几百M而已,这样就可以在我们的机器上实现原来虚拟机的效果。

第一步:拉取镜像,关于这一步,现在基本分为两个方向,一个是直接利用docker,在docker提供的仓库里拉取即可;第二种是自己编写Dockerfile进行个性化的配置。我比较倾向于第二种。这里每一种方法不做详细介绍,后面会做详细介绍。

第二步:在拉取或者build镜像之后,我们就可以利用镜像新建容器。查看已有镜像----docker image ls

第三步:利用命令新建容器。创建容器----docker -it --name 自己起的容器名称 镜像名字:镜像tag  /bin/bash 这样就可以创建一个容器并且启动容器。其中参数 it是指容器交互。/bin/bash 是指启动容器之后调用容器的bash命令,具体新建容器的各个参数,建议自己详细的了解一下,这样也有助于加深对docker的理解。

示例:docker run -it --name mydocker  myImage:latest /bin/bash

第四步:如果第三步成功之后,Mac下终端应该变为了CentOS的命令行形式,比如:root@abcdefg这样的。

这时已经拥有一个CentOS虚拟系统了,你可以想干嘛就干嘛了。造作吧。

第五步:如果要退出容器,有两种方式,1.直接输入exit,退出容器并且关闭。2.ctrl+P+Q可以退出容器但是不关闭。个人比较喜欢第二种。

第六步:退出容器后,为了更好的使用刚才构造容器的镜像,我觉得应该把容器的改变都提交给镜像。因为,如果我们再需要这样的容器,只需要拿镜像再去run一个即可。而不用考虑是否要一直保留这个容器,有了自己配置好的镜像,我随便删除和新建自己需要的容器。命令 ---docker commit -a "提交者的名字" -m "描述信息" -p (默认为true,在提交完成之后,终止容器)  容器名字 在仓库里的名字:tag标示(一般为latest)

示例:docker commit -a "ly" -m "add change" mydocker  firstCommit:latest

这时我们使用命令--docker image ls 就会看到 firstCommit这个新的镜像

第七步:这仅仅是把docker commit到我们本地,如果想要提交到网上我们自己的仓库。则是进行如下命令,docker tag 本地镜像名称 docker用户名/docker下的仓库名(没有这个仓库会默认新建)

示例:docker tag firstCommit ly/dockerRepository

注意:如果你在第六步新建镜像的时候tag不是用的latest,而是随便起的,比如说:firstCommit:v1,那么这里就要在镜像名字后面加上你的tag标示,就是这样 docker tag firstCommit:v1  ly/dockerRepository

运行完这个命令,就可以把本地镜像推送到远程仓库了 docker push 用户名/仓库名

示例:docker push ly/dockerRepository

记得要登陆docker.不登录的话可能会报denied: requested access to the resource is denied错误,关于这个错误,如果你已经登录,还是报这个错误,建议你tag为标准形式,再push就可以了。

第八步:既然已经把docker 的镜像push到了远程仓库,本地的镜像我们可以大胆的删除。在删除镜像前,先要删除依赖此景象的容器,在删除容器之前,必须停止容器。

示例:docker stop mydocker   (停止容器)

           docker rm mydocker (删除容器)

          docker rmi 镜像ID(或者镜像名字)(删除镜像) 说明--一般直接用镜像ID即可,但是有的时候两个镜像的imageID一样,有依赖,所以可以用镜像名字删除。

至此:docker简单的流程算是跑通了。里面还有各种细节还未详解介绍。后续会一一介绍,这里仅仅做一个流程的正常跑通。

不得不感叹牛人的设计,以前庞大的虚拟机,现在仅仅一个进程就搞定了。??

2019-1-16更新:

补充一下:当删除镜像的时候,如果上面两种方式都不行,则可以采用如下方式,

docker rmi 镜像名字:tag标示,就可以删掉了。

单纯的提交镜像时,可以这样做,docker tag 镜像名字 用户名/仓库名字:latest

然后,docker push 镜像名字 用户名/仓库名

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值