首页 > 其他分享 >实验2:Docker实验

实验2:Docker实验

时间:2022-12-23 16:44:40浏览次数:36  
标签:OK tomcat runoob 实验 mysql Docker docker

云计算技术与应用     石家庄铁道大学信息学院

 

实验2:Docker实验

本次实验属于验证型实验,通过本次实验学生将掌握以下内容:

1、了解Docker服务安装;

2、掌握Docker镜像操作。

 


[实验任务]:

一、Docker服务安装

https://www.bilibili.com/video/BV11L411g7U1?p=2&spm_id_from=pageDriver 参考教程

Docker 支持以下的 Ubuntu、Centos 版本:

  • Ubuntu Precise 12.04 (LTS)
  • Ubuntu Trusty 14.04 (LTS)
  • Ubuntu Wily 15.10
  • Centos 7及以上
  • 其他更新的版本……

前提条件

Docker 要求 Ubuntu、Centos 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的 Ubuntu、Centos版本是否支持 Docker。

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

runoob@runoob:~$ uname -r

 


使用脚本安装 Docker

1、获取最新版本的 Docker 安装包

runoob@runoob:~$ wget -qO- https://get.docker.com/ | sh

 

输入当前用户的密码后,就会下载脚本并且安装Docker及依赖包。

 

 

安装完成后有个提示:

    If you would like to use Docker as a non-root user, you should now consider

    adding your user to the "docker" group with something like:

 

    sudo usermod -aG docker runoob

   Remember that you will have to log out and back in for this to take effect! 

当要以非root用户可以直接运行docker时,需要执行 sudo usermod -aG docker runoob 命令,然后重新登陆,否则会有如下报错

 

2、启动docker 后台服务

runoob@runoob:~$ sudo service docker start

 

3、测试运行hello-world

runoob@runoob:~$ docker run hello-world

 

 

二、Docker镜像操作

2.1Mysql安装

docker pull mysql

查找Docker Hub上的mysql镜像

runoob@runoob:/mysql$ docker search mysql

NAME                     DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED

mysql                    MySQL is a widely used, open-source relati...   2529      [OK]      

mysql/mysql-server       Optimized MySQL Server Docker images. Crea...   161                  [OK]

centurylink/mysql        Image containing mysql. Optimized to be li...   45                   [OK]

sameersbn/mysql                                                          36                   [OK]

google/mysql             MySQL server for Google Compute Engine          16                   [OK]

appcontainers/mysql      Centos/Debian Based Customizable MySQL Con...   8                    [OK]

marvambass/mysql         MySQL Server based on Ubuntu 14.04              6                    [OK]

drupaldocker/mysql       MySQL for Drupal                                2                    [OK]

azukiapp/mysql           Docker image to run MySQL by Azuki - http:...   2                    [OK]

...

这里我们拉取官方的镜像,标签为5.6

runoob@runoob:~/mysql$ docker pull mysql:5.6

等待下载完成后,我们就可以在本地镜像列表里查到REPOSITORY为mysql,标签为5.6的镜像。

runoob@runoob:~/mysql$ docker images |grep mysql

mysql               5.6                 2c0964ec182a        3 weeks ago         329

使用mysql镜像

运行容器

runoob@runoob:~/mysql$ docker run -p 3306:3306 --name mymysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6

21cb89213c93d805c5bacf1028a0da7b5c5852761ba81327e6b99bb3ea89930e

runoob@runoob:~/mysql$

命令说明:

  • -p 3306:3306:将容器的 3306 端口映射到主机的 3306 端口。
  • -v -v $PWD/conf:/etc/mysql/conf.d:将主机当前目录下的 conf/my.cnf 挂载到容器的 /etc/mysql/my.cnf。
  • -v $PWD/logs:/logs:将主机当前目录下的 logs 目录挂载到容器的 /logs。
  • -v $PWD/data:/var/lib/mysql :将主机当前目录下的data目录挂载到容器的 /var/lib/mysql 。
  • -e MYSQL_ROOT_PASSWORD=123456初始化 root 用户的密码。

查看容器启动情况

runoob@runoob:~/mysql$ docker ps

CONTAINER ID    IMAGE         COMMAND                  ...  PORTS                    NAMES

21cb89213c93    mysql:5.6    "docker-entrypoint.sh"    ...  0.0.0.0:3306->3306/tcp   mymysql

2.2 Tomcat安装

docker pull tomcat

查找Docker Hub上的tomcat镜像

runoob@runoob:~/tomcat$ docker search tomcat

NAME                       DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED

tomcat                     Apache Tomcat is an open source implementa...   744       [OK]      

dordoka/tomcat             Ubuntu 14.04, Oracle JDK 8 and Tomcat 8 ba...   19                   [OK]

consol/tomcat-7.0          Tomcat 7.0.57, 8080, "admin/admin"              16                   [OK]

consol/tomcat-8.0          Tomcat 8.0.15, 8080, "admin/admin"              14                   [OK]

cloudesire/tomcat          Tomcat server, 6/7/8                            8                    [OK]

davidcaste/alpine-tomcat   Apache Tomcat 7/8 using Oracle Java 7/8 wi...   6                    [OK]

andreptb/tomcat            Debian Jessie based image with Apache Tomc...   4                    [OK]

kieker/tomcat                                                              2                    [OK]

fbrx/tomcat                Minimal Tomcat image based on Alpine Linux      2                    [OK]

jtech/tomcat               Latest Tomcat production distribution on l...   1                    [OK]

这里我们拉取官方的镜像

runoob@runoob:~/tomcat$ docker pull tomcat

等待下载完成后,我们就可以在本地镜像列表里查到REPOSITORY为tomcat的镜像。

runoob@runoob:~/tomcat$ docker images|grep tomcat

tomcat              latest              70f819d3d2d9        7 days ago          335.8 MB

使用tomcat镜像

运行容器

runoob@runoob:~/tomcat$ docker run --name tomcat -p 8080:8080 -v $PWD/test:/usr/local/tomcat/webapps/test -d tomcat  
acb33fcb4beb8d7f1ebace6f50f5fc204b1dbe9d524881267aa715c61cf75320
runoob@runoob:~/tomcat$

命令说明:

-p 8080:8080将容器的8080端口映射到主机的8080端口

-v $PWD/test:/usr/local/tomcat/webapps/test将主机中当前目录下的test挂载到容器的/test

查看容器启动情况

runoob@runoob:~/tomcat$ docker ps 
CONTAINER ID    IMAGE     COMMAND               ... PORTS                    NAMES
acb33fcb4beb    tomcat    "catalina.sh run"     ... 0.0.0.0:8080->8080/tcp   tomcat

通过浏览器访问

 

2.3 SqlServer安装

 

 

 

 

 

 

 

 

 

2.4 Oracle安装

 

 

 

 

 

2.5 Redis安装

 

 

 

 

 

 

2.6 Mongo安装

 

 

 

 

 

 

问题:Docker是什么?他可以用来做什么?

Docker 是一个开源的应用容器引擎

Docker 其中包括,镜像、容器、仓库,很简单,目的就是通过对应用组件的封装、分发、部署、运行等生命周期的管理,使用户的产品(可以是 web 应用或者数据库应用)及其环境能够做到“一次封装,到处运行”。

再通俗点说,我们使用Docker,只需要配置一次Docker容器上面的应用,就可以跨平台,跨服务器,实现应用程序跨平台间的无缝衔接

Docker实际上就相当于一个封闭的沙盒或者是集装箱,它可以把不同的应用全都放在它的集装箱里面,并且以后有需要的时候,可以直接把集装箱搬到其他平台或者服务器上,实现容器虚拟化技术,随用随搬

一句话,Docker解决了运行环境和配置问题软件容器,方便做持续集成并有助于整体发布的容器虚拟化技术。

 

Docker作用

   绝大部分应用,开发者都可以通过docker build创建镜像,通过docker push上传镜像,用户通过docker pull下载镜像,用docker run运行应用。用户不需要再去关心如何搭建环境,如何安装,如何解决不同发行版的库冲突,而且通常不会需要消耗更多的硬件资源,不会明显降低性能。这就是所说的标准化、集装箱的原因所在。

解决运行环境不一致所导致的问题。这样就不会产生“本地运行没问题,可一到服务器上就不行了”的情况

限定最大的cpu使用内存硬盘,这样就起到了隔离的作用,避免产生“一块代码产生死循环,把磁盘占满了,其它程序也挂了”的情况。

docker的标准化让快速扩展,弹性伸缩变得简单

 

标签:OK,tomcat,runoob,实验,mysql,Docker,docker
From: https://www.cnblogs.com/rongzhang/p/17001027.html

相关文章

  • 实验6
    task.4#include<stdio.h>intmain(){charch;FILE*fp;fp=fopen("data4.txt","r");if(fp==NULL){printf("failtoopenfile");......
  • docker swarm 服务/容器编排
    十年河东,十年河西,莫欺少年穷学无止境,精益求精根据上节搭建的集群环境:dockerswarm集群环境搭建【一主二从】本节来进行服务/容器编排1、在master管理者节点拉取nginx......
  • docker容器的使用
    获取镜像通过在终端输入指令获取镜像dockerpullubuntu  查看镜像查看镜像是否存在dockerimages 运行容器在终端输入指令启动容器dockerrun-itub......
  • 实验6
    text4#define_CRT_SECURE_NO_WARNINGS#include<stdio.h>intmain(){FILE*fp;fp=fopen("D:\\.temp\\data4.txt","r");if(feof(fp)){p......
  • 懂了!VMware/KVM/Docker原来是这么回事儿
    原文链接云计算时代,计算资源如同小马哥当年所言,已经成为了互联网上的水和电。 虚拟主机、web服务器、数据库、对象存储等等各种服务我们都可以通过各种各样的云平台来......
  • docker swarm 集群环境搭建【一主二从】
    十年河东,十年河西,莫欺少年穷学无止境,精益求精前提条件:准备三台虚拟机,分别安装docker并将docker设置为开机自启动,并执行如下操作设置主机名设置192.168.182.128的主......
  • Docker+Jenkins+Gitee+Maven构建后台jar包后通过命令备份、替换、重启docker-compose
    场景docker-compose入门以及部署SpringBoot+Vue+Redis+Mysql(前后端分离项目)以若依前后端分离版为例:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/12837......
  • docker安装elasticsearch时max virtual memory areas vm.max_count(65530) is too low
    利用docker-compose安装elasticsearch时启动失败的异常解决maxvirtualmemoryareasvm.max_count(65530)istoolow...一.异常现象我在利用docker-compose进行elasticse......
  • docker修改默认分配网桥子网
    docker修改默认分配网桥子网在安装完docker,启动容器时,docker会为容器默认分配一个容器子网,一般为172.17.0.0/24,当该虚机运行其他容器需要创建额外的网桥,可能会造成与......
  • 火山引擎 DataTester 上线“流程画布”功能,支持组合型 A/B 实验分析
    更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群在精细化运营的时代,运营活动同样需要有精细化的策略,例如在年末大促活动中,设计APP......