Docker 是一个开源的、轻量级、可移植的容器引擎,主要运行于 Linux 和 Windows,性能很高。其会对Linux中的若干进程进行隔离,如:Mysql、Nginx、SpringBoot等,而被隔离的进程则被称为容器,完全独立于宿主机的进程。
docker安装好后我们需要进行一下测试是否安装成功,执行以下命令
启动并加入开机启动
systemctl start docker
systemctl enable docker
验证安装是否成功
docker version
系统指令
启动docker服务
systemctl start docker
停止docker服务
systemctl stop docker
重启docker服务
systemctl restart docker
systemctl status docker 显示running时是运行了的 显示dead是没运行
docker info #也可以查看 只要出现一堆数据就是开启了
docker version 显示server(服务器)时说明docker是开启的 只显示client说明没有启动
拥有了docker我们就可以像在应用商店里下载软件一样来非常方便的安装各种应用,这里就应该引入docker的一个概念-----镜像
镜像是一种轻量级、可执行的独立软件包。用于封装应用项目和项目环境。其内部会包含某个软件所需的所有内容,如代码、运行库、配置文件等。镜像是一个静态的概念,不包含任何动态数据,其内容在构建之后也不会被改变。当要进行应用项目的服务器迁移时,只需要将项目和环境封装成一个Docker镜像,然后在指定服务器运行即可。
搜索远程仓库镜像(以tomcat为例)
docker search 镜像名称 #如docker search tomcat
从远程仓库拉取镜像(镜像名称后面可以加版本号,不加默认为最新版)
docker pull 镜像名称 #如docker pull tomcat
查询本地镜像,从远程仓库拉取的镜像可以在本地查询到
docker images
删除镜像
#指定删除镜像
docker rmi 镜像名称 #如docker rmi tomcat
#删除本地所有镜像,慎用
docker rmi `docker images -q`
拉取到本地后并不算大功告成,下面需要引入docker另一个概念----容器
容器是由镜像产生的运行实例,最终在服务器上运行的就是一个个容器。对于容器和镜像的关系,可以理解为Java中的类与对象的关系。
查看所有容器
docker ps -a
查看正在运行的容器
docker ps
容器又分为交互式容器和守护式容器,这俩容器名字听起来高大上,其实大可不必被它的名字吓到,下面他们的创建主要在于下面-d或是-t的区别,搞懂这两个命令就能明白两种容器的区别!
交互式容器
所谓交互式容器,即容器创建成功即启动,并直接进入当前容器,当退出容器(exit)时,容器就会进入停止状态。简单理解。即用完就销毁。适用于开发、测试环境或临时性任务。
守护式容器
所谓守护式容器,即容器创建后,会以后台进行形式运行,不会直接进入容器内部。对于一些需要长期运行的容器,会选择创建守护式容器。
**-i**:表示运行容器
**-t**:表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端。
**--name** :为创建的容器命名。
**-d**:在run后面加上-d参数,则会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器,如果只加-i -t
两个参数,创建后就会自动进去容器)。
**-v**:表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个-v做多个目录或文件
映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。
**-p**:表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p做多个端口映射
#启动容器
docker start 容器名称|容器id
#进入容器
docker exec -it 容器名称|容器id /bin/bash
#停止容器
docker stop 容器名称|容器id
#重启容器
docker restart 容器名称|容器id
有了这些理论的基础,下面来真刀实枪的搞一个
此处创建了一个tomcat的守护式容器,为了方便测试将webapps下的ROOT以挂载到了本地目录,如有需要还可将其他目录挂载到本地
docker run --name tomcat-test -d -p 8080:8080 -v /mydata/tomcat/webapps:/usr/local/tomcat/webapps -v /mydata/tomcat/webapps/ROOT:/usr/local/tomcat/webapps/ROOT tomcat
如果跟我一样拉去的最新版的tomcat,此处有一个问题就是,进入到容器内部发现这里多了一个webapps.list,tomcat首页的资源全部都转移到了这个文件夹里,所以不知道的朋友可能会发现首页反问不到,这个问题解决也简单,要么把webapp.list的文件名称换到要么就把ROOT复制到webapps下
将ROOT文件夹复制到webapps下
mv webapps.dist/ROOT webapps
然后就可以访问到了
使用finalshell查看到tomcat容器挂载到本地的目录,然后在这里上传一个test.html文件,测试是否能访问到
很ok,还是可以访问到的
本人对于linux的操作还很弱,这更多的是对入门的一个总结,后续有发现不足会随时补充!