美文网首页程序员
docker常用命令

docker常用命令

作者: _一叶_ | 来源:发表于2016-08-04 22:16 被阅读0次

    docker常用命令

    0. 上传下载

    docker search 192.168.2.55:5000/      //查询
    docker pull 192.168.2.55:5000/ubuntu  //拉取镜像
    docker push 192.168.2.55:5000/ubuntu  //上传镜像
    

    使用国内mirror镜像加速:在/etc/sysconfig/docker的options中添加--registry-mirror=镜像地址,然后重启docker

    1. 启动和终止

    docker run -d 192.168.2.55:5000/rabbitmq //通过镜像创建容器然后启动, -d从后台启动
    docker start CONTAINER_ID //启动已停止的容器
    docker attach CONTAINER_ID //进入-d后台启动的容器,但是多个窗口进入同一个容器时,其中一个阻塞所有窗口都会阻塞,所以使用下面的命令更好
    docker exec -it CONTAINER_ID /bin/bash
    docker stop CONTAINER_ID //停止容器
    docker rmi //移除不要的镜像
    docker rm CONTAINER_ID //移除处于终止状态的容器
    docker rm $(docker ps -a -q) //清理所有处于终止状态的容器
    

    2. 存出载入

    docker save -o xxx.tar IMAGE //存出镜像到xxx.tar
    docker load -i xxx.tar //从xxx.tar载入镜像
    docker export ID > NAME.tar  //导出容器快照
    docker import URL REPO //导入容器快照
    //load和import都可导入,但是快照将丢弃所有的历史记录和元数据,而镜像将保存完整记录,体积也要大些
    

    3. 数据卷

    1. -v挂载数据卷,特殊的目录,容器间共享数据,备份/恢复/迁移
    2. 关于数据卷容器:数据容器的概念已经过时了。这是在没有docker volume的时代的东西,那个时候卷是匿名的,所以要指定某个卷,就必须连带指定其挂载容器。所以用—volumes_from的的形式来挂载某些卷。现在不需要,定义命名卷,直接挂就行,不需要额外再去建立个傻容器。

    4. 网络

    1) 启动容器的时候指定端口

     -p ip:hostPort:containerPort | ip::containerPort | hostPort:containerPort 
    
    -P大写 会随机49000~49900一个到容器内部开放的端口
    
    docker port //查看当前镜像映射的端口
    

    2) 容器互联(安全)

    启动时通过别名连接,启动时以--name为容器标记名字,--link连接。仅在单台主机使用
    其实:是在连接者的path和hosts中添加了被连接者的ip 端口等

    3) docker的几种网络模式

    • bridge: 默认方式
    • none:无网络,需用户自定义
    • host:共享主机网络
    • container:容器间网桥复用
    • overlay:性能损耗?

    5. 私有仓库

    拉取Docker hub上面的registry镜像,然后在本地启动并映射出端口即可,验证是否搭建成功:

    [root@localhost ~]# 
    curl 127.0.0.1:5000/v1/search
    curl 139.168.2.55:5000/v2/_catalog
    //输出:
    {"num_results": 1, "query": "", "results": [{"description": "", "name": "library/ssh"}]}
    

    客户端访问私有仓库时需要添加http支持:

    [root@localhost ~]# vim /etc/sysconfig/docker
    //修改此行
    OPTIONS='--selinux-enabled --insecure-registry 192.168.2.55:5000'
    [root@localhost ~]# service docker restart
    Redirecting to /bin/systemctl restart  docker.service
    

    清除私有仓库镜像:
    curl -X DELETE http://192.168.2.55:5000/v1/repositories/centos/tags/latest
    实际上,物理上叠加的镜像层是不会删除的,就是说通过这个url删除的只是对应的镜像信息,而不是实际的镜像。目前只有使用一些第三方脚本工具来删除真正的镜像:
    私有库版本v2可以参考 https://github.com/burnettk/delete-docker-registry-image

    7. 创建镜像

    8. 常见错误

    docker daemon 无法启动(删除前记得备份数据哦)

    rm -rf /var/lib/docker/*

    找不到配置文件(v1.11.0)

    参考:http://www.itnpc.com/news/web/145083113731628.html


    相关文章

      网友评论

        本文标题:docker常用命令

        本文链接:https://www.haomeiwen.com/subject/edchsttx.html