核心概念
1.Docker主机(Host):安装了Docker程序的机器
2.Docker客户端(Client):连接Docker主机进行操作
3.Docker仓库(Registry):用来保存各种打包好的软件镜像
4.Docker镜像(Images):软件打包好的镜像,放在Docker仓库中
5.Docker容器(Container):镜像启动后的实例称为一个容器,容器是独立运行的一个或一组应用
使用Docker的步骤
1.安装Docker
2.去Docker仓库找需要的软件的镜像
3.使用Docker运行这个镜像,这个镜像就会生成一个Docker容器
4.对容器的启动停止
上边的内容有点难嚼,概念这个东西刚开始不知道无所谓,也不用记,多用用就知道啥是啥了。在开始之前,先搞环境。
Docker环境
1.公司用的centos7,所以我也把centos7装在了我虚拟机上
2.为了方便,我还是用我之前用的Xshell连接虚拟机的centos7
Docker安装
1.先检查内核,必须在3.10以上,黑白屏盲打:
uname -r
2.安装docker,有提示直接输入y确认即可
yum install docker
3.出现以下神秘代码说明安装完成
Complete!
4.启动docker,centos7的写法:
systemctl start docker
5.自己验证一下,出现版本号说明ok
docker -v
6.开机启动docker设置:
systemctl enable docker
7.停止docker:
systemctl stop docker
ok,真牛批,恭喜学会了开关docker,果然一边写博客一遍操作挺耗时间
Docker镜像操作
镜像就是。。。比如说要安装mysql,首先得有mysql安装包吧,镜像就是这么个意思。
1.安装之前,先下载安装包呗,通过docker search mysql命令查找一波安装包,这其实是去docker hub去查安装包了,咱也能自己稍微百度下docker hub去官网看下
[root@7rx0h6qoxgffx6a ~]# docker search mysql
INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED
docker.io docker.io/mysql MySQL is a widely used, open-source relati... 9942 [OK]
docker.io docker.io/mariadb MariaDB is a community-developed fork of M... 3636 [OK]
docker.io docker.io/mysql/mysql-server Optimized MySQL Server Docker images. Crea... 724 [OK]
docker.io docker.io/percona Percona Server is a fork of the MySQL rela... 508 [OK]
docker.io docker.io/centos/mysql-57-centos7 MySQL 5.7 SQL database server 83
docker.io docker.io/mysql/mysql-cluster Experimental MySQL Cluster Docker images. ... 75
docker.io docker.io/centurylink/mysql Image containing mysql. Optimized to be li... 61 [OK]
docker.io docker.io/bitnami/mysql Bitnami MySQL Docker Image 44 [OK]
docker.io docker.io/deitch/mysql-backup REPLACED! Please use http://hub.docker.com... 41 [OK]
docker.io docker.io/tutum/mysql Base docker image to run a MySQL database ... 35
docker.io docker.io/prom/mysqld-exporter 31 [OK]
docker.io docker.io/databack/mysql-backup Back up mysql databases to... anywhere! 30
docker.io docker.io/schickling/mysql-backup-s3 Backup MySQL to S3 (supports periodic back... 30 [OK]
docker.io docker.io/linuxserver/mysql A Mysql container, brought to you by Linux... 25
docker.io docker.io/centos/mysql-56-centos7 MySQL 5.6 SQL database server 20
docker.io docker.io/circleci/mysql MySQL is a widely used, open-source relati... 19
docker.io docker.io/mysql/mysql-router MySQL Router provides transparent routing ... 16
docker.io docker.io/arey/mysql-client Run a MySQL client from a docker container 14 [OK]
docker.io docker.io/fradelg/mysql-cron-backup MySQL/MariaDB database backup using cron t... 8 [OK]
docker.io docker.io/openshift/mysql-55-centos7 DEPRECATED: A Centos7 based MySQL v5.5 ima... 6
docker.io docker.io/devilbox/mysql Retagged MySQL, MariaDB and PerconaDB offi... 3
docker.io docker.io/ansibleplaybookbundle/mysql-apb An APB which deploys RHSCL MySQL 2 [OK]
docker.io docker.io/jelastic/mysql An image of the MySQL database server main... 1
docker.io docker.io/widdpim/mysql-client Dockerized MySQL Client (5.7) including Cu... 1 [OK]
docker.io docker.io/monasca/mysql-init A minimal decoupled init container for mysql 0
[root@7rx0h6qoxgffx6a ~]#
额,我网慢的很,就不去官网了。说一下上边的title是啥,跳过前三个,第四列一串数字说的是有多少人关注,第五列ok代表是官方的,第六列ok是说是否自动配置了的,我们搞官方版的话是需要我们自己配置的
2.拉取镜像,大白话:下载安装包,使用docker pull命令,比如我们就下载官方mysql
[root@7rx0h6qoxgffx6a ~]# docker pull mysql
Using default tag: latest
注意命令回车后第一行,说的是使用latest默认标签,也就是下载最新版,那想要下载自己想要的版本,后边要带自定义标签。这里咋看版本号?还是得去官网
[root@7rx0h6qoxgffx6a ~]# docker pull mysql:5.5
看下安装好了没,安装好了先别慌,使用docker images查看镜像,就是查看安装包
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/tomcat latest 2eb5a120304e 3 months ago 647 MB
docker.io/rethinkdb latest b1efb5d6e94d 3 months ago 131 MB
docker.io/mysql latest be0dbf01a0f3 3 months ago 541 MB
每个镜像都会有自己唯一的镜像ID,就是IMAGE ID这一列
安装好了是吧,删了吧:docker rmi +镜像ID
[root@7rx0h6qoxgffx6a ~]# docker rmi 2eb5a120304e
Docker容器操作
现在有了安装包,那就是安装呗。拿tomcat为例。根据tomcat的镜像启动容器,(根据tomcat的安装包安装,不过在docker里,可以根据一个镜像安装n个实例)docker run,–name tom意思是取别名,随便起,-d是后台运行,latest还记得吧,是标签,当然,这启动了也是访问不了tomcat的,下边再提,先把容器操作搞一波。
[root@7rx0h6qoxgffx6a ~]# docker run --name tom -d tomcat:latest
查看运行中的容器:
docker ps
停止运行中的容器:
docker stop 容器ID
查看所有容器:
docker ps -a
启动容器
docker start 容器ID
删除一个容器:
docker rm 容器ID
现在说一下咋的才能在我们本机访问到docker机的tomcat
docker run -d -p 8888:8080 tomcat:latest
解释:-p就是做端口映射,前边的8888是docker的端口,后边的8080是tomcat的端口,做个关联映射。再说细点,我们在本机访问docker机的tomcat,本来是要找8080的这个端口,可docker把tomcat的8080映射到docker机的8888了,所以我们是通过8888端口访问到tomcat的8080的。
还有,访问失败的,请先瞅瞅虚拟机的防火墙,要么开放端口,要么关掉防火墙再试试。
就到这儿了,提醒:此篇只做入门,完后有空再写别的系列