Docker学习笔记
Docker基本概念
Docker基本组成:
镜像(image)
Docker镜像好比一个模板,可以通过这个模板创建容器服务,tomcat镜像==>run ==>tomcat 01容器(提供服务),通过镜像可以创建多个容器。
容器(Container)
Docker利用容器技术,独立运行一个或一组应用程序,通过镜像来创建。
可以将容器理解为一个简易的linux系统。
仓库(Repository)
仓库就是存放镜像的地方。
仓库分为公有仓库和私有仓库。
Docker与虚拟机的区别:
虚拟机是一个缩小版的操作系统,不同的应用共用一个运行环境。
docker将不同的应用与其运行环境封装成一个个容器,并放置于OS内核上运行。不同容器之间相互隔离,每个容器有自己独立的文件系统。
DevOps(开发、运维)
应用更快速的交付和部署
Docker:打包镜像发布测试,一键运行。
更便捷的升级和扩缩容
使用Docker之后,我们部署应用如同搭积木。
更简单的系统运维
在容器化之后,开发和测试环境高度一致。
更高效的计算资源利用
Docker是内核级别的虚拟化,可以在一个物理机上运行多个容器实例。
Docker为什么比VM快?
Docker有着比虚拟机更少的抽象层
Docker利用宿主机的内核,VM需要搭建额外的环境。
新建一个容器的时候,Docker不需要像虚拟机一样额外加载一个操作系统内核。
Docker run运行机制
Docker底层实现
Docker常用命令
镜像命令
查看所有镜像
1 | root@node10-desktop:/home/ubuntu# docker images -a |
可选选项
1 | Usage: docker images [OPTIONS] [REPOSITORY[:TAG]] |
搜索镜像
1 | root@node10-desktop:/home/ubuntu# docker search mysql |
可选选项
1 | ubuntu@node10-desktop:~$ docker search mysql --filter=STARS=3000 |
搜索stars大于3000的。
下载镜像
1 | 下载镜像 docker pull 镜像名[:tag] |
下载mysql 5.7版本
1 | ubuntu@node10-desktop:~$ docker pull mysql:5.7 |
删除镜像
1 | docker rmi -f 容器id |
容器命令
说明:有了镜像才可以创建容器
1 | docker pull centos |
新建容器并启动
1 | docker run [可选参数] image |
列出所有的运行的容器
1 | docker ps #列出所有正在运行的容器 |
退出容器
1 | exit #直接容器停止并退出 |
删除容器
1 | docker rm 容器id #删除指定的容器 |
启动和停止容器
1 | docker start 容器id #启动 |
常用其他命令
后台启动容器
1 | 命令 Docker run -d 镜像名 |
查看日志
1 | docker logs -tf --tail 容器 #没有日志 |
查看容器中的进程信息
1 | docker top 容器id |
查看镜像的元数据
1 | 命令 |