概念入门:
docker是什么?现在很难回答这个问题,但是可以回答,可以用docker来做什么。
在我们服务器数量比较少的情况下,在我们需要做运行环境隔离的时候,docker就是一种好的选择。
我们可能使用过虚拟机,比如Vmare,我们在一台机器上创建3台虚拟机,就相关于我们有了三台机器,各自互不干扰
但是其启动慢,消耗资源多。这时docker技术的优势就体现出来了。
docker中可以运行一种叫做Image的软件包。神奇的是,image还可以层层累加。Image被加载后,就叫做container,
并且,我们还可以和container进行交互,这就很强了。
如果能抽象理解docker也可以,比细节理解docker简单多了,能方便我们使用docker。可以将docker是一饼干盒,镜像就像饼干中的
夹层
安装:
安装docker其实分为三个组件containier.io,docker-ce, docker-cli,可以使用yum安装,其功能的英文解释如下:
-
containerd.io - daemon to interface with the OS API (in this case, LXC - Linux Containers), essentially decouples Docker from the OS, also provides container services for non-Docker container managers
-
docker-ce - Docker daemon, this is the part that does all the management work, requires the other two on Linux
-
docker-ce-cli - CLI tools to control the daemon, you can install them on their own if you want to control a remote Docker daemon
docker的核心操作:
在docker的操作中,有一个核心就是怎么操作linux镜像,因为这些是tomcat,mysql等镜像的基础。如果对linux镜像非常熟悉,那么在其上面叠加镜像,就非常简单了。
docker run
安装完成后就可以使用docker命令:
首先我从hub.docker.com拉取了tomcat的镜像(加上tag)
docker run -d -p 1600:8080 tomcat:9-jdk8-corretto # 启动容器,配置端口的映射,-d表示后台运行
docker exec -it container-id /bin/bash # 进入容器
作为容器,我们是需要向其中放东西的,那么就得进入容器,exec就是用于进入容器的方法。
那么如何打包我们的程序呢?
我先搞了一个tomcat的镜像玩,我们知道这个tomcat是依赖于linux的。然后我们想搞一个linux镜像玩呢?是不是也要下载这个镜像呢?
用户一般不会在ubuntu中写什么东西,因为容器一般会重新启动,然后写的东西都没有了。一般我们会把写的东西放在容器中运行,但是这些东西都是在外面开发的,都是有副本的。
docker中的linux的man是不能用的,它到底阉割了什么?
就需要容器环境和宿主机进行交户,最简单的就是文件copy。
我们最熟悉的镜像就是linux了吧?因为我们经常用虚拟机。但是当我们把一个Ubuntu运行起来后,我们能干什么呢?我分迷茫。发现在容器中vim都用不了。
参考博文: