什么是Docker?
百度百科:一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
使用Go语言编写,在LCX(Linux)基础上进行封装。
简单来说:
①、可以快速部署启动应用。
②、实现虚拟化,完成资源隔离。
③、一次编写,到处运行(有一定限制,比如Docker是基于Linux 64 bit的,无法在32 bit的Linux/Windows/Unix环境下使用)。
使用Docker的好处?
①、提供一次性的环境。假如需要安装MySQL,则需要安装许多依赖库、版本等。如果使用Docker则通过镜像就可以直接启动运行。
②、快速动态扩容,使用Docker部署一个应用,可以制作成镜像,然后通过Docker快速启动。
③、组建微服务架构,可以在一个机器上模拟出微服务的架构,启动多个应用。
④、更好的资源隔离和共享。
一句话:开箱即用,快速部署,可移植性强,环境隔离。
Docker的安装
(一)、在Linux(Centos7)上安装:
1. 通过uname -r 命令查看你当前的内核版本,内核版本高于 3.10
2. 移除旧版本:
sudo yum remove docker\
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine
3. 安装一些必要的工具:sudo yum install -y yum-utils device-mapper-persistent-data lvm2
4. 添加软件源信息:sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
5. 更新yum缓存:sudo yum makecache fast
6. 安装
6.1. 最新版:Docker-ce:sudo yum -y install docker-ce
6.2. 版本列表:yum list docker-ce --showduplicates | sort -r
6.3. 安装yum install -y docker-ce-17.09.0.ce
7. 启动 Docker 后台服务:sudo systemctl start docker
8. 测试运行 hello-world:docker run hello-world
(二)、在阿里云ECS服务器上安装:
1. 添加yum源:
1.1. yum install epel-release –y
1.2. yum clean all
1.3. yum list
2. 安装并运行Docker:
2.1. yum install docker-io –y
2.2. systemctl start docker
3. 检查安装结果:
3.1. docker info
读者可根据上面的两种方法,自行安装。安装成功,通过下面命令,即可查看Docker版本。
# docker version
# docker info
通过上面命令,显示Docker系统信息,包括镜像和容器数。
Docker镜像、容器、仓库
1、Docker镜像 - Docker images:
容器运行时的只读模板,操作系统 + 软件运行环境 + 用户程序
2、Docker容器 - Docker containers:
容器包含了某个应用运行时所需要的全部环境。
3、Docker仓库 - Docker registeries
用来保存镜像,有公有仓库和私有仓库,好比Maven的中央仓库和本地私服。
镜像仓库:https://hub.docker.com/
配置国内镜像仓库(参考链接):https://blog.csdn.net/zzy1078689276/article/details/77371782
对比面向对象:
Docker里面的镜像 : Java里面的类(Class)
Docker里面的容器 : Java里面的对象(Object)
通过类创建对象,通过镜像创建容器
Docker的基本用法
下面给各位读者讲一下Docker的基本操作。
Docker守护进程管理
# systemctl start docker # 运行Docker守护进程
# systemctl stop docker # 停止Docker守护进程
# systemctl restart docker # 重启Docker守护进程
搜索镜像
# docker search xxx # xxx是镜像名称
查看已有镜像
# docker images
拉取、删除镜像
# docker pull xxx:tag # xxx是镜像名称 tag是版本,如果不指定,则默认最新版。
# docker rmi -f xxx # xxx是IMAGE_ID或者IMAGE_NAME
运行、停止容器
# docker run --name myrabbitmq -d -p 5672:5672 -p 15672:15672 rabbitmq:management
docker run - 运行一个容器
-d 后台运行
-p 端口映射
rabbitmq:management(格式:repository:tag) 如果不指定tag,默认使用最新的
-- name xxx 给容器起一个别名
# docker stop 容器名称 # 停止容器
# docker start 容器名称 # 启动容器
# docker rm 容器名称 # 删除容器
容器运行完,就可以访问了,这里以RabbitMQ为例。
列举运行的容器
# docker ps # 列出容器
-a # 显示所有的容器,包括未运行的
-f # 根据条件过滤显示的内容
-l # 显示最近创建的容器
-n # 列出最近创建的n个容器
-q # 静默模式,只显示容器编号
-s # 显示总的文件大小
--format # 指定返回值的模板文件
--no-trunc # 不截断输出
查看容器内部信息
# docker inspect 容器名称
常用命令
https://blog.csdn.net/permike/article/details/51879578
https://www.runoob.com/docker/docker-command-manual.html
可以根据上面链接中的内容学习Docker的其他操作及命令。
本篇博文讲了Docker的一些基础知识和基本的操作命令,下一篇关于Docker的文章,会讲如何创建私有的镜像仓库,构建SpringBoot应用的Docker镜像并发布到私有镜像仓库。
学如逆水行舟,不进则退;心似平原走马,易放难收。