Docker

1、简介

Docker是一个开源的应用容器引擎;是一个轻量级容器技术;

Docker支持将软件编译成一个镜像;然后在镜像中各种软件做好配置,将镜像发布出去,其他使用者可以直接使用这个镜像;

运行中的这个镜像称为容器,容器启动是非常快速的。

2、核心概念

docker主机(Host):安装了Docker程序的机器(Docker直接安装在操作系统之上);
   
 docker客户端(Client):连接docker主机进行操作;
   
 docker仓库(Registry):用来保存各种打包好的软件镜像;
   
 docker守护进程(daemon): 一般在宿主主机后台运行,等待接收来自客户端的消息。
   
 docker镜像(Images):软件打包好的镜像;放在docker仓库中;
   
 docker容器(Container):镜像启动后的实例称为一个容器;容器是独立运行的一个或一组应用

使用Docker的步骤:

1)、安装Docker

2)、去Docker仓库找到这个软件对应的镜像;

3)、使用Docker运行这个镜像,这个镜像就会生成一个Docker容器;

4)、对容器的启动停止就是对软件的启动停止。

3、安装Docker

1)、安装linux虚拟机

就不做过多的赘述了。

2)、在linux虚拟机上安装docker

Docker从1.13版本之后采用时间线的方式作为版本号,分为社区版CE和企业版EE。

社区版是免费提供给个人开发者和小型团体使用的,企业版会提供额外的收费服务,比如经过官方测试认证过的基础设施、容器、插件等。

社区版按照stable和edge两种方式发布,每个季度更新stable版本,如17.06,17.09;每个月份更新edge版本,如17.09,17.10。

安装步骤:

1、Docker 要求 CentOS 系统的内核版本高于 3.10 。

通过 uname -r 命令查看当前的内核版本

[root@localhost ~]#uname -r

2、使用 root 权限登录 Centos。确保 yum 包更新到最新。

[root@localhost ~]#sudo yum update

3、卸载旧版本(如果安装过旧版本的话)

[root@localhost ~]#sudo yum remove docker  docker-common docker-selinux docker-engine

4、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的

[root@localhost ~]#sudo yum install -y yum-utils device-mapper-persistent-data lvm2

5、设置yum源

[root@localhost ~]#sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

这个源是国外网站的,有可能会很慢,可以改成阿里云提供的镜像,二者执行一个即可:

[root@localhost ~]#sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

6、可以查看所有仓库中所有docker版本,并选择特定版本安装

[root@localhost ~]#yum list docker-ce --showduplicates | sort -r

7、安装docker

[root@localhost ~]#sudo yum install docker-ce  #这里安装的是最新稳定版18.09.6
[root@localhost ~]#sudo yum install <FQPN>  # 例如:sudo yum install docker-ce-17.12.1.ce

8、启动并加入开机启动

[root@localhost ~]#sudo systemctl start docker
[root@localhost ~]#sudo systemctl enable docker

9、验证安装是否成功(有client和service两部分表示docker安装启动都成功了)

[root@localhost ~]#docker version

10、停止docker

[root@localhost ~]#sudo systemctl stop docker

4、Docker常用命令&操作

1)、镜像操作

操作

命令

说明

检索

docker search 关键字 eg:docker search redis

我们经常去docker hub上检索镜像的详细信息,如镜像的TAG。

拉取

docker pull 镜像名:tag

:tag是可选的,tag表示标签,多为软件的版本,默认是latest

列表

docker images

查看所有本地镜像

删除

docker rmi image-id

删除指定的本地镜像

https://hub.docker.com/

2)、容器操作

软件镜像(例如QQ安装程序)----运行镜像----产生一个容器(正在运行的软件,运行的QQ);

步骤:

1、搜索镜像
[root@localhost ~]# docker search tomcat

	2、拉取镜像
[root@localhost ~]# docker pull tomcat

	3、根据镜像启动容器
docker run --name mytomcat -d tomcat:latest

	4、查看运行中的容器
[root@localhost ~]# docker ps  

	5、停止运行中的容器
[root@localhost ~]# docker stop  容器的id

	6、查看所有的容器
[root@localhost ~]# docker ps -a

	7、启动容器
[root@localhost ~]# docker start 容器id

	8、删除一个容器
[root@localhost ~]# docker rm 容器id

	9、启动一个做了端口映射的tomcat
[root@localhost ~]# docker run -d -p 8888:8080 tomcat

-d:后台运行
-p: 将主机的端口映射到容器的一个端口    主机端口:容器内部的端口

	10、为了演示简单关闭了linux的防火墙
service firewalld status ;查看防火墙状态
service firewalld stop:关闭防火墙

	11、查看容器的日志
docker logs container-name/container-id

更多命令参看
https://docs.docker.com/engine/reference/commandline/docker/
可以参考每一个镜像的文档