Docker容器入门

2022-12-13,,

为什么要看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'

Docker容器入门的相关教程结束。

《Docker容器入门.doc》

下载本文的Word格式文档,以方便收藏与打印。