• Docker容器入门


    为什么要看docker

    从去年起就或多或少的接受了docker的熏陶,主要还是Infoq在去年有很多关于docker的实践视频讲座,记得有一篇是《Docker在雪球的技术实践》,当时听的也不是很明白,就萌生了了解docker的想法。

    可惜由于工作的关系,一直没有接触到这方面的内容,因此学习的计划也就暂时搁置。直到前不久京东促销买了本docker的书籍、又上网买了本盗版的电子书,想趁着春节好好学习一番,没想到回家就玩了。

    直到最近抽出时间读一下《第一本docker书》,就当做先了解了解。

    我理解的docker

    通过看了前几章的书,以及百度了解,大体上理解了什么是docker。

    按照我的理解,docker其实就是一种虚拟化的技术。就像virtualBox,你可以在windows上安装,然后通过不同的镜像装不同的系统。而docker也是差不多,只不过它不是一种操作系统,而是在原生的系统之上直接虚拟出一个容器。这个容器有独立的进程、权限、资源、网络等等。

    docker的口号跟java有点像,一次编写,到处运行。因为docker本身作为一种容器,在什么地方安装都是一样的(现在对平台还是有一定要求的),而不管内部装的是什么。

    因此开发者只要写代码然后把程序放在容器中运行起来就行;运维人员呢,只需要了解怎么部署docker容器就可以了。

    这样就完全解决了,开发完的东西在开发人员自己电脑上好使,到别人电脑上就不好使的问题。

    docker能做什么

    通过上面的介绍,大致了解docker的生命周期可能是这样的:

    • 构建:构建容器
    • 分发:CI持续集成,部署,镜像
    • 运行:以守护进程的方式运行

    那么docker到底都可以做什么呢?

    • 加速本地开发、构建流程
    • 在不同的环境中,得到相同的运行结果
    • 隔离的环境测试
    • 构建Paas

    不过需要注意一点的是,docker目前对安装环境还是有一定要求的。比如:

    • 1 64位CPU
    • 2 3.8+内核
    • 3 存储驱动,
    • 4 内核开启cgroup和命名空间

    docker的常用命令

    运行容器:

    sudo docker run -i -t ubuntu /bin/bash
    

    查看容器列表:

    docker ps -a
    

    容器命名:sudo docker run --name bob_the_container -i -t ubuntu /bin/bash
    重新启动:

    sudo docker start bob_the_container
    

    创建守护容器:

    sudo docker run --name daemon_dave -d ubuntu /bin/bash -c "while true;do echo hello world; sleep 1;done"
    

    带时间查看日志:

    sudo docker logs -ft daemon_dave
    

    查看容器内的进程:

    sudo docker top daemon_dave
    

    容器内运行进程:

    sudo docker exec -d daemon_dave touch /etc/new_config_file
    

    交互式运行进程:

    sudo docker exec -t -i daemon_dave /bin/bash
    

    停止守护进程:

    sudo docker stop daemon_dave或者sudo docker stop 43wqihds8324
    

    自动重启容器:

    sudo docker run --restart=always --name daemon_dave -d ubuntu /bin/bash -c "while true;do echo hello world; sleep 1;done"
    

    查看容器详细信息:

    sudo docker inspect daemon_dave
    

    删除容器:

    sudo docker rm 823919fdsfdas3
    

    删除所有容器:

    docker rm 'docker ps -a -q'
    
  • 相关阅读:
    UVa OJ 120
    ACM--string常见用法
    log4j
    总结13.11.9
    Java 动态生成 PDF 文件
    Linux_CentOS-服务器搭建 <七>
    关于dao层的封装和前端分页的结合(文章有点长,耐心点哦)
    Linux_CentOS-服务器搭建 <六>
    Linux_CentOS-服务器搭建 <五> 补充
    JQ获取CKeditor的值
  • 原文地址:https://www.cnblogs.com/xing901022/p/5199473.html
Copyright © 2020-2023  润新知