您的位置:首页 > 运维架构 > Docker

SpringBoot框架学习(八)——Docker

2019-03-29 13:26 381 查看

文章目录

  • (2)容器操作
  • 十二、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
    内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
    标签: