SpringBoot框架学习(八)——Docker
文章目录
十二、Docker
1.简介
Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。 Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中, 然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。 容器是完全使用沙箱机制,相互之间不会有任何接口,更重要的是容器性能开销极低。
Docker支持将软件编译成一个镜像;然后 在镜像中各种软件做好配置,将镜像发布 出去,其他使用者可以直接使用这个镜像。 运行中的这个镜像称为容器,容器启动是 非常快速的。类似windows里面的ghost操 作系统,安装好后什么都有了。
2.Docker核心概念
docker镜像(Images):Docker 镜像是用于创建Docker 容器的 模板。
docker容器(Container):容器是独立运行的一个或一组应用。
docker客户端(Client):客户端通过命令行或者其他工具使用 DockerAPI(https://docs.docker.com/reference/api/docker_remote_api) 与Docker 的守护进程通信
docker主机(Host):一个物理或者虚拟的机器用于执行 Docker 守护进程和容器。
docker仓库(Registry):Docker 仓库用来保存镜像,可以理解 为代码控制中的代码仓库。Docker Hub(https://hub.docker.com) 提供了庞大的镜像集合供使用。
3.Docker的安装
直接在root用户 yum install docker即可(centos7)
4.Docker的基操
(1)镜像操作
<1>检索
我们可以在docker hub上检索镜像的详细信息,如镜像的TAG
[centos7@localhost ~]$ sudo docker search mysql INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED docker.io docker.io/mysql MySQL is a widely used, open-source relati... 7960 [OK] docker.io docker.io/mariadb MariaDB is a community-developed fork of M... 2662 [OK] docker.io docker.io/mysql/mysql-server Optimized MySQL Server Docker images. Crea... 598 [OK] docker.io docker.io/zabbix/zabbix-server-mysql Zabbix Server with MySQL database support 176 [OK] docker.io docker.io/hypriot/rpi-mysql RPi-compatible Docker Image with Mysql 110 docker.io docker.io/zabbix/zabbix-web-nginx-mysql Zabbix frontend based on Nginx web-server ... 92 [OK] docker.io docker.io/centurylink/mysql Image containing mysql. Optimized to be li... 60 [OK] docker.io docker.io/1and1internet/ubuntu-16-nginx-php-phpmyadmin-mysql-5 ubuntu-16-nginx-php-phpmyadmin-mysql-5 50 [OK] docker.io docker.io/centos/mysql-57-centos7 MySQL 5.7 SQL database server 50 docker.io docker.io/mysql/mysql-cluster Experimental MySQL Cluster Docker images. ... 41 docker.io docker.io/tutum/mysql Base docker image to run a MySQL database ... 31 docker.io docker.io/bitnami/mysql Bitnami MySQL Docker Image 25 [OK] docker.io docker.io/schickling/mysql-backup-s3 Backup MySQL to S3 (supports periodic back... 25 [OK] docker.io docker.io/zabbix/zabbix-web-apache-mysql Zabbix frontend based on Apache web-server... 24 [OK] docker.io docker.io/linuxserver/mysql A Mysql container, brought to you by Linux... 20 docker.io docker.io/zabbix/zabbix-proxy-mysql Zabbix proxy with MySQL database support 20 [OK] docker.io docker.io/centos/mysql-56-centos7 MySQL 5.6 SQL database server 13 docker.io docker.io/circleci/mysql MySQL is a widely used, open-source relati... 12 docker.io docker.io/mysql/mysql-router MySQL Router provides transparent routing ... 8 docker.io docker.io/dsteinkopf/backup-all-mysql backup all DBs in a mysql server 6 [OK] docker.io docker.io/openshift/mysql-55-centos7 DEPRECATED: A Centos7 based MySQL v5.5 ima... 6 docker.io docker.io/jelastic/mysql An image of the MySQL database server main... 1 docker.io d 4000 ocker.io/ansibleplaybookbundle/mysql-apb An APB which deploys RHSCL MySQL 0 [OK] docker.io docker.io/cloudposse/mysql Improved `mysql` service with support for ... 0 [OK] docker.io docker.io/widdpim/mysql-client Dockerized MySQL Client (5.7) including Cu... 0 [OK]
<2>拉取(下载)
tag是可选的,tag表示标签,多为软件的版本,默认是latest
[centos7@localhost ~]$ sudo docker pull mysql Using default tag: latest Trying to pull repository docker.io/library/mysql ... latest: Pulling from docker.io/library/mysql 27833a3ba0a5: Pull complete 864c283b3c4b: Pull complete cea281b2278b: Pull complete 8f856c14f5af: Pull complete 9c4f38c23b6f: Pull complete 1b810e1751b3: Pull complete 5479aaef3d30: Pull complete ded8fa2e1614: Pull complete 636033ba4d2e: Pull complete 902e6010661d: Pull complete dbe44d2bf055: Pull complete e906385f419d: Pull complete Digest: sha256:a7cf659a764732a27963429a87eccc8457e6d4af0ee9d5140a3b56e74986eed7 Status: Downloaded newer image for docker.io/mysql:latest
<3>查看已安装镜像
[centos7@localhost ~]$ sudo docker images REPOSITORY TAG IMAGE ID CREATED SIZE docker.io/mysql latest 7bb2586065cd 2 days ago 477 MB
<4>删除镜像
将镜像对应的image id删除
docker rmi IMAGE ID
(2)容器操作
软件镜像(QQ 安装程序)----运行镜像----产生一个容器
<1>搜索镜像
[centos7@localhost ~]$ sudo docker search tomcat
<2>拉取镜像
[centos7@localhost ~]$ sudo docker pull tomcat
<3>根据镜像启动容器
[centos7@localhost ~]$ sudo docker run --name mytomcat -d tomcat:latest 2967fa251bcd6b01d4aab31b86a98f0d024dd9a3be61513ac0a94640943d4f40
<4>查看正在运行的docker
[centos7@localhost ~]$ sudo docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 2967fa251bcd tomcat:latest "catalina.sh run" 51 seconds ago Up 49 seconds 8080/tcp mytomcat
我们可以看到tomcat的默认端口号是8080,但是访问了localhost:8080无法访问,因为没有建立端口映射,所以无法访问容器的tomcat,所以要重新安装tomcat
<5>停掉容器
[centos7@localhost ~]$ sudo docker stop 2967fa251bcd 2967fa251bcd
<6>删除容器
[centos7@localhost ~]$ sudo docker rm 2967fa251bcd 2967fa251bcd
<7>启动一个做了端口映射的容器
[centos7@localhost ~]$ sudo docker run -d -p 8888:8080 tomcat 041f7f88220a98095cb0fa6edb17d7518609a2358e7c1b70cc6a998ca3f730a1
-d:后台运行
-p:将主机端口映射过来
8888:主机端口
8080:容器端口
<8>查看日志
[centos7@localhost ~]$ sudo docker logs 041f7f88220a
- spring boot框架学习5-spring boot的web开发(1)
- 学习用Sts做一个SpringBoot的WEB项目(3)工作页面框架
- springboot学习: 初识Spring Boot框架,搭建第一个项目!
- Spring Boot框架学习
- 基于Spring Boot和Spring Cloud实现微服务架构学习(五)-Docker总结
- spring boot框架学习3-spring boot核心(2)
- spring boot框架学习12-spring boot整合active mq方法1
- 基于Spring Boot和Spring Cloud实现微服务架构学习(五)-Docker总结
- spring boot框架学习6-spring boot的web开发(2)
- 基于Spring Boot和Spring Cloud实现微服务架构学习(六)-Docker应用
- spring boot框架学习12-spring boot整合active mq方法1
- 深入学习微框架:Spring Boot
- spring boot框架学习4-spring boot核心(3)
- Spring-boot学习(一):IntelliJ IDEA 搭建Spring-boot 框架HelloWorld
- spring boot框架学习1-认识spring boot和快速入门
- 0基础教你搭建一套可自动化构建的微服务框架(SpringBoot+Dubbo+Docker+Jenkins)
- 基于Spring Boot和Spring Cloud实现微服务架构学习(五)-Docker总结
- spring boot框架学习8-【干货】spring boot的web开发(4)-自定义拦截器处理权限
- 深入学习微框架:Spring Boot
- 基于Spring Boot和Spring Cloud实现微服务架构学习(六)-Docker应用