设为首页 收藏本站
查看: 1075|回复: 0

[经验分享] docker基本操作

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-5-3 09:21:25 | 显示全部楼层 |阅读模式
Docker是基于Linux 64bit的,无法在windows/unix或32bit的linux环境下使用.
所以docker只能在64的系统里面。容器虚拟化,比传统的虚拟化轻量。易迁移,平台依赖性不强。只算是系统的一个服务或模块。
docker核心概念
1.  镜像,只读模版,像我们装系统的一个iso文件。
2.  容器 , 镜像类似虚拟机本身,所以我们说容器装载镜像。
3.仓库,存放镜像的一个地方,分为私有仓库和公有仓库。最大的公开仓库是Docker hub(hub.docker.com),国内公开仓库(dockerpool.com)。
4.安装docker(以centos为列,分为centos6,7)
centos6 安装
yuminstall -y epel-release
yuminstall -y docker-io
centos7 上安装
yum install -y dockerl
启动dockerl
/etc/init.d/dockerstart

5.docker基本操作
docker pull  centos   //从docker.com获取centos镜像
docker images  //查看本地都有哪些镜像
docker tag centos liu123  //为centos镜像设置标签为liu123,再使用docker images查看会多出来一行,改行的imageid和centos的一样
docker search [image-name]   //从docker仓库搜索docker镜像,后面是关键词
docker run -t -i centos  /bin/bash //用下载到的镜像开启容器,-i表示让容器的标准输入打开,-t表示分配一个伪终端,要把-i-t 放到镜像名字前面
当该镜像发生修改后,我们可以把该镜像提交重新生成一个新版本进行在本地。
dockerps  //查看运行的容器,加上-a选项可以查看没有运行的容器
dockerrmi centos  //用来删除指定镜像, 其中后面的参数可以是tag,如果是tag时,实际上是删除该tag,只要该镜像还有其他tag,就不会删除该镜像。当后面的参数为镜像ID时,则会彻底删除整个镜像,连通所有标签一同删除

6.当下载了一个镜像后,然后docker run -it centos /bin/bash 进去后,安装了一些安装包后,可以生成自己的一个镜像。
dockercommit -m "change somth" -a  "somebody info" container_id(通过dockerps -a获取id) 新镜像名字
例如:  docker commit  -m  "install httpd" -a "Aming" 2c74d574293f liuwenzhi
这个命令有点像svn的提交,
-m 加一些改动信息,
-a 指定作者相关信息  
2c74d这一串为容器id,可通过docker ps -a
再后面为新镜像的名字

7.把镜像导出一个文件,镜像迁移
docker save -o centos.tar centos

注:容器迁移
docker export container_id > file.tar

容器导入
cat file.tar |docker import - liuwenzhi  生成liuwenzhi该镜像

8.用刚才的导出去的文件可以恢复本地镜像
docker load --input centos.tar  或者docker load <centos.tar

9.docker create -it centos  //这样可以创建一个容器,但该容器并没有启动

docker start container_id  //启动容器后,可以使用dockerps 查看到,有start就有stop,和restart

之前我们使用的docker run 相当于先create再start
docker run -i -t centos  bash

这样进入了一个虚拟终端里面,我们可以运行一些命令,使用命令exit或者ctrl d 退出该bash,当退出后这个容器也会停止。
docker run -d  可以让容器在后台运行

docker run --name web -itd centos bash // --name 给容器自定义名字

10.docker logs container_id 查看容器的历史记录

11.进入一个后台,docker attach container_id  这个退出后容器也跟着退出,不建议用。

12.docker exec -it container_id bash 进入后台运行的机器

13。删除容器的命令
docker rm container_id
删除镜像的命令
docker rmi


14.上传到本地镜像
dockerpull registry   //下载registry镜像,registy为docker官方提供的一个镜像,我们可以用它来创建本地的docker私有仓库。

dockerrun -d -p 5000:5000 registy  //以registry镜像启动容器,监听5000端口

curl127.0.0.1:5000  //可以访问它

下面我们来把其中一个镜像上传到私有仓库
dockertag aming_test 172.7.15.106:5000/centos //标记一下tag,必须要带有私有仓库的ip:port

docker push 172.7.15.106:5000/centos   //此时报错了类似如下
Error response from daemon: invalidregistry endpoint https://172.7.15.106:5000/v0/: unable to ping registryendpoint https://172.7.15.106:5000/v0/
v2 ping attempt failed with error: Get https://172.7.15.106:5000/v2/:EOF
v1 ping attempt failed with error: Get https://172.7.15.106:5000/v1/_ping: EOF.If this private registry supports only HTTP or HTTPS with an unknown CAcertificate, please add `--insecure-registry 172.7.15.106:5000` to the daemon'sarguments. In the case of HTTPS, if you have access to the registry's CAcertificate, no need for the flag; simply place the CA certificate at /etc/docker/certs.d/172.7.15.106:5000/ca.crt


这是因为Docker从1.3.X之后,与docker registry交互默认使用的是https,然而此处搭建的私有仓库只提供http服务,所以当与私有仓库交互时就会报上面的错误。为了解决这个问题需要在启动dockerserver时增加启动参数为默认使用http访问。解决该问题的方法为:

vi /etc/init.d/docker  

把 $exec -d $other_args 改为
$exec -d --insecure-registry 172.7.15.106:5000  $other_args    这里的IP是宿主机的IP
  
然后重启docker
service docker restart

再启动registry容器
docker start  registry_container_id

curlhttp://172.7.15.106:5000/v1/search   //可以查看私有仓库里面的所有镜像



15.docker的数据管理
挂在本地目录到docker里面
docker run -itd -v /data/:/data centos  bash     //:前面的/data是宿主机的目录。后面是docker里面的/data。

16.
定义数据卷容器
有时候,我们需要多个容器之间相互共享数据,类似于linux里面的NFS,所以就可以搭建一个专门的数据卷容器,然后其他容器直接挂载该数据卷。

首先建立数据卷容器
docker run -itd -v /data/ --name testvolaming/centos bash  //注意这里的/data/是容器的/data目录,并非本地的/data/目录。

然后让其他容器挂载该数据卷dockerrun -itd --volumes-from testvol aming bash


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-211969-1-1.html 上篇帖子: dockerfile 收集 下篇帖子: 企业自用docker registry v2 镜像仓库
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表