码迷,mamicode.com
首页 > 其他好文 > 详细

2 docker模板 镜像 容器 仓库管理

时间:2016-08-20 14:50:28      阅读:220      评论:0      收藏:0      [点我收藏+]

标签:仓库管理   search   center   开发者   style   

镜像管理
搜索镜像
# docker search centos
    [stars]:开发者的数量,应当选择开发者较多的
下载镜像
# docker pull centos
查看镜像
# docker images
复制镜像
# docker tag centos centos1[:tag]

启动镜像
docker run -t -i centos /bin/bash
-t分配为终端
-i让容器标准输入打开
加上-d 即使exit退出为终端,容器也在运行,容器里的网站啊数据库都不会停止

查看镜像的运行情况
docker ps 查看正在运行的镜像
docker ps -a 查看正在所有的镜像

删除镜像
如果容器已经启动,先要关闭容器
docker stop CONTAINER_ID

删除镜像
docker rmi centos[:tag] 删除镜像 
    tag用于精确定位
# docker rmi hiyang
Untagged: hiyang:latest
# docker rmi yang:latest
Untagged: yang:latest



Docker 基于已有镜像的容器创建镜像
官方提供centos镜像,带有yum。
安装一些常用软件
# yum install wget net-tools vim-enhanced

查看系统版本
# cat /etc/redhat-release 
CentOS Linux release 7.2.1511 (Core)

查看内核 和母机的内核版本相同
# uname -r
2.6.32-573.el6.x86_64

生成新的镜像
# docker commit -m ‘centos with net-tools and wget‘ -a ‘hiyang‘ 8c13d4df2974 centos_with_net
-m 指定说明信息
-a 指定作者
CONTAINER ID 可以缩写
最后是新镜像的名称


基于本地模板dao‘ru创建镜像
模板下载地址
openvz的模板可以使用在docker中

导入模板
# cat centos-6-x86-minimal.tar.gz | docker import - centos-6-x86-minimal
此处的名称centos-6-x86-minimal可以自定义

导出镜像
# docker save -o centos_with_net IMAGE_ID

导入镜像
# docker load -i centos6 或者
# docker load < centos6

上推镜像
# docker push image_name



容器管理
启动容器时运行命令,bash -c可以省略可以省略
# docker run -d centos bash -c "while :; do echo "123";  sleep 5;done"
# docker exec -it centos bash -c "while :; do echo "123";  sleep 5;done"
查看命令运行情况
# docker logs

启动exit后的容器
# docker start CONTAINER_ID 
    CONTAINER_ID可以简写

启动容器时,使用--name指定名称
# docker run --name hi -itd centos

关闭容器
# docker stop CONTAINER_ID 

进入启动的容器
# docker exec -it CONTAINER_ID /bin/bash
# docker attach CONTAINER_ID 退出后即关闭系统

导出容器
# docker export cea > centos_export.tar

导入容器后是一个镜像,需要重新生成容器
# cat centos_export.tar | docker --import - hiyang 


docker仓库管理
下载registry镜像,registry用来搭建本地的docker仓库
# docker pull registry

从外边无法访问容器,因此需要映射
# docker run -d -p 5000:5000 registry

查看registry的运行和端口
# docker ps
CONTAINER ID        IMAGE               COMMAND                CREATED             STATUS              PORTS                    NAMES
c86eaf803b16        registry            "/entrypoint.sh /etc   3 minutes ago       Up 3 minutes        0.0.0.0:5000->5000/tcp   elegant_fermat      

测试网络连通性
# telnet 127.0.0.1 5000 或者
# curl 127.0.0.1:5000

为了测试,选择较小的busybox
# docker pull busybox
添加tag,添加这个tag之后才能上传到私有的仓库中
# docker tag busybox 192.168.1.30:5000/busybox

上传报错
# docker push 192.168.1.30:5000/busybox

Error response from daemon: invalid registry endpoint https://192.168.1.30:5000/v0/: unable to ping registry endpoint https://192.168.1.30:5000/v0/

解决办法,修改配置文件
# vim /etc/init.d/docker
$exec -d --insecure-registry 192.168.1.30:5000 $other_args &>> $logfile &

重启docker
# /etc/init.d/docker restart
启动registry
# docker start c86eaf803b16

上传成功
# docker push 192.168.1.30:5000/busybox
The push refers to a repository [192.168.1.30:5000/busybox] (len: 1)
b05baf071fd5: Image already exists 
4185ddbe03f8: Image successfully pushed 
Digest: sha256:30914a5bc1a94367f542a624e0ae1c7cc544bb97cef5e5b4e3bbf9eafdf6273d





2 docker模板 镜像 容器 仓库管理

标签:仓库管理   search   center   开发者   style   

原文地址:http://hiyang.blog.51cto.com/10728919/1840519

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!