开始时间:2022-05-22
课程链接:Docker实战精讲-docker使用快速入门教程【完整版】
Docker概念
Docker是一个开源的应用容器引擎。
Docker技术让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,打包好的容器可以发布到任何流行的Linux服务器上运行,这样就可以解决开发环境与运维环境不一致的问题了。
所以容器技术解决了开发和运维之间的矛盾,让开发专注于开发,运维专注于运维,不要被环境问题所打扰;
简单地说,Docker是对软件和其依赖环境的标准化打包,应用之间相互隔离,共享一个OS Kernel(解决了资源浪费的问题),可以运行在很多主流操作系统上;
Docker本身不是容器,Docker只是管理容器的引擎。
容器和虚拟机的区别
- 容器是将代码和环境的关系打包在一起的一个集合,而虚拟机是在物理层面上,分出来的一个操作系统
- 多个容器可以运行在同一台物理服务器上,并共享一个操作系统的内核资源。多个虚拟机也可以运行在同一台机器上,但每个虚拟机都需
- 容器是在本地操作系统层面上实现虚拟化,直接复用本地主机的操作系统,不需要单独安装操作系统
- 传统的虚拟化技术方式则需要单独安装每个虚拟机的操作系统。
特性 | 容器 | 虚拟机 |
---|---|---|
启动 | 秒级 | 分钟级 |
硬盘空间 | 一般为几十MB | 一般为10GB |
性能 | 接近原生 | 弱于原生 |
系统支持量 | 单机支持上千个容器 | 一般几十个 |
docker安装与使用
在虚拟机中,执行下面的命令
[root@localhost ~]# yum install docker -y
此时执行下面的语句
[root@localhost ~]# systemctl start docker
Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details.
启动docker服务
结果我失败了
我想会不会是没关防火墙
[root@localhost ~]# systemctl stop firewalld
结果还是报错
看了弹幕,发现得修改配置文件
[root@localhost ~]# vim /etc/sysconfig/docker
默认enabled后面没东西,要加一个等号和false
此时执行
[root@localhost ~]# vim /etc/sysconfig/docker
[root@localhost ~]# systemctl start docker
正常运行
Docker底层运行原理
Docker的底层运行原理:
Docker服务启动→下载镜像→启动该镜像得到一个容器→容器里运行着我们想要的程序
安装Tomcat
Docker pull Tomcat
查看已安装的
[root@localhost ~]# docker images
运行镜像
[root@localhost ~]# docker run -d tomcat
如果运行报错
参考博客的解决方式
starting container process caused "process_linux.go:258: applying cgroup configuration for process caused \"Cannot set property TasksAccounting, or unknown property.\"".
更新我们的CentOs
利用yum update更新一下系统
启动下载下来的镜像得到一个容器
docker放在Linux里面,docker里面装的是Tomcat
但是我们访问直接访问的Linux,需要让Tomcat直接给一个从Linux访问的接口
需要做一个端口映射
启动的时候改为这样启动
把Linux的8080映射到容器的8080
//Linux端口:容器端口
[root@localhost ~]# docker run -d -p 8080:8080 tomcat
此时可以看到
然后我们通过192.168.113.128:8080访问tomcat欢迎界面
访问失败,报错404
解决访问参考博客
结束时间:2022-05-22