每日博客

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安装

查找sqlsever镜像 docker search sqlsever

 

安装sqlsever镜像

 

运行sqlsever

 

2.4 Oracle安装

查找oracle镜像

 

安装oracle镜像

 

2.5 Redis安装

查找Redis镜像

 

安装redis

 

运行Redis

 

2.6 Mongo安装

查找Mongo镜像

 

安装Mongo镜像

 

运行镜像

 

问题:Docker是什么?

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。顾名思义,docker是一个容器引擎。

他可以用来做什么?

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows 机器上,也可以实现虚拟化。 容器是完全使用沙箱机制,相互之间不会有任何接口。

原文地址:https://www.cnblogs.com/hfy717/p/15569460.html