容器引擎 Docker--(1)入门

目录

一、Docker介绍

        服务上线会出现的问题

        什么是Docker

        为什么用docker

        Docker的应用场景

        Docker 和虚拟机总结

        Docker总结

二、Docker架构

        简介

        Docker基本概念

        Docker引擎

        Docker架构

        Docker镜像

三、Docker仓库

        公有Docker Registry

        私有Docker Registry

四、Docker安装

        CentOS安装要求:

        安装

        卸载

五、Docker 镜像加速器

        Docker官方加速器

        阿里云加速器

        检查加速器是否生效

六、Docker镜像

        Docker获取镜像

        Docker列出镜像

        Docker删除本地镜像

        Docker其它辅助命令

        Docker保存镜像

七、容器

        1、查看容器状态

        2、Docker启动容器

        3、停止容器

        4、启动已终止容器

        6、关闭和删除容器

        7、Docker守护态运行

        8、Docker进入容器

        9、在宿主机和容器之间交换文件

八、Docker查看日志

九、Docker数据卷

        什么是数据卷

        数据卷的应用

centos防火墙端口


!!!注:以下内容为B站 千锋教育Docker快速入门教程 笔记

视频链接:Docker

一、Docker介绍

        服务上线会出现的问题

问题1:
某IT部门要上线一个项目。常规操作,直接去线上服务器,拷贝一个tomcat,然后改端口号,然后部署应用到webapps文件夹下,重启就好。
一个服务器上可能会部署多个应用服务。如果某个应用出现问题,CPU100%,可能这个服务器上的其他应用也会出现问题。对于一个大型应用拆分为几十个微服务,分别交由不同的团队开发,不同团队之间水平参差不齐。如果还采用这种部署方式,你的应用可能会因为另一个团队的应用发生意外。因部署在了同一台服务器上,导致全部出现问题。

问题2:
开发和线上代码(同一套代码)问题。开发阶段部署一套软件环境,测试人员在开发中测试没有问题,运维进行部署,但是正式部署到服务器时,发生了问题(启动参数、环境问题、漏配了参数)等意外。

问题3:
随着微服务技术的兴起,一个大的应用需要拆分成多个微服务。多个微服务的生成,就会面临庞大系统的部署效率,开发协同效率问题。然后通过服务的拆分,数据的读写分离、分库分表等方式重新架构,而且这种方式如果要做的彻底,需要花费大量人力物力。可能需要部署很多个服务器。

问题4:
持续的软件版本发布/测试项目。到线上环境的集成

        什么是Docker

        Docker是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0协议开源。
        Docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。
        容器是完全使用沙箱机制,相互之间不会有任何接口(类似iPhone的 app),更重要的是容器性能开销极低。

        为什么用docker

1、简化程序:
Docker让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,便可以实现虚拟化。Docker改变了虚拟化的方式,使开发者可以直接将自己的成果放入Docker中进行管理。方便快捷已经是Docker的最大优势,过去需要用数天乃至数周的任务,在Docker容器的处理下,只需要数秒就能完成。
2、避免选择恐惧症:
如果你有选择恐惧症,还是资深患者。Docker帮你打包你的纠结!比如 Docker 镜像;Docker镜像中包含了运行环境和配置,所以Docker可以简化部署多种应用实例工作。比如Web应用、后台应用、数据库应用、大数据应用比如Hadoop集群、消息队列等等都可以打包成一个镜像部署。
3、节省开支
一方面,云计算时代到来,使开发者不必为了追求效果而配置高额的硬件,Docker改变了高性能必然高价格的思维定势。Docker 与云的结合,让云空间得到更充分的利用。不仅解决了硬件管理的问题,也改变了虚拟化的方式。
4、持续交付和部署
对开发和运维(DevOps)人员来说,最希望的就是一次创建或配置,可以在任意地方正常运行。使用Docker可以通过定制应用镜像来实现持续集成、持续交付、部署。开发人员可以通过Dockerfile来进行镜像构建,并结合持续集成(Continuous Integration)系统进行集成测试,而运维人员则可以直接在生产环境中快速部署该镜像,甚至结合持续部署(Continuous Delivery/Deployment)系统进行自动部署。而且使用Dockerfile使镜像构建透明化,不仅仅开发团队可以理解应用运行环境,也方便运维团队理解应用运行所需条件,帮助更好的生产环境中部署该镜像
5、更轻松的迁移
由于Docker确保了执行环境的一致性,使得应用的迁移更加容易。Docker可以在很多平台上运行,无论是物理机、虚拟机、公有云、私有云,甚至是笔记本,其运行结果是一致的。因此用户可以很轻易的将在一个平台上运行的应用,迁移到另一个平台上,而不用担心运行环境的变化导致应用无法正常运行的情况。

        Docker的应用场景

Web应用的自动化打包和发布。
自动化测试和持续集成、发布。
在服务型环境中部署和调整数据库或其他的后台应用。
从头编译或者扩展现有的OpensShift或Cloud Foundry平台来搭建自己的Paas环境。

        开发一套应用程序代码、服务器(Linux)、安装开发环境工具包(JDK/Tomcat/Mysql/Nginx/RabbitNMQ/Redis/Solr)

IaaS: (Infrastructure-as-a- Service) (基础设施即服务)

阿里云、百度云、腾讯云、华为云        企业只需开发一套应用程序代码、安装开发环境工具包
PaaS: (Platform as a Service) (平台即服务)

服务器+安装开发环境工具包        企业只需要开发一套应用程序代码。
SaaS: (Software-as-a-Service) (软件即服务)

服务器+安装开发环境工具包+代码        企业只需要花钱购买服务即可。

        Docker 和虚拟机总结

名词解释:
infrastructure (基础服务) 硬件     Host OS主机操作系统      VM虚拟机        Hypervisor虚拟层程序

1.实现原理技术不同
虚拟机是用来进行硬件资源划分的完美解决方案,利用的是硬件虚拟化技术,如此VT-x、AMD-v会通过一个hypervisor 层来实现对资源的彻底隔离。
而容器则是操作系统级别的虚拟化,利用的是内核的cgroup和Namespace特性,此功能通过软件来实现,仅仅是进程本身就可以实现互相隔离,不需要任何辅助。
2.使用资源方面不同
Docker容器与主机共享操作系统内核,不同的容器之间可以共享部分系统资源,因此更加轻量级,消耗的资源更少。
虚拟机会独占分配给自己的资源,不存在资源共享,各个虚拟机之间近乎完全隔离,更加重量级,也会消耗更多的资源。
3.应用场景不同
若需要资源的完全隔离并且不考虑资源的消耗,可以使用虚拟机。若是想隔离进程并且需要运行大量进程实例,应该选择Docker容器。

        Docker总结

●Docker是世界领先的软件容器平台
●Docker使用Google公司推出的Go语言进行开发实现, 基于Linux内核的cgroup, namespace, 以及AUFS类的UnionFS等技术,对进程进行封装隔离,属于操作系统层面的虚拟化技术。由于隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容器。Docke最初实现是基于LXC。
●Docker能够自动执行重复性任务, 例如搭建和配置开发环境,从而解放了开发人员以便他们专注在真正重要的事情上:构建杰出的软件
●用户可以方便地创建和使用容器,把自己的应用放入容器。容器还可以进行版本管理、复制、分享、修改,就像管理普通的代码一样。
●Docker的镜像提供了除内核外完整的运行时环境,确保了应用运行环境一 致性,从而不会再出现“这段代码在我机器上没问题啊"这类问题。--一致的运行环境
●可以做到秒级、甚至毫秒级的启动时间。大大的节约了开发、测试、部罢的时间。--更快速的启动时间
●避免公用的服务器,资源会容易受到其他用户的影响。-- 隔离性
●善于处理集中爆发的服务器使用压力; -- 弹性伸缩,快速扩展
●可以很轻易的将在一个平台上运行的应用,迁移到另一 个平台上,而不用担心运行环境的变化导致应用无法正常运行的情况。-- 迁移方便
●使用Docker可以通过定制应用镜像来实现持续集成、持续交付、部署。--持续交付和部署

二、Docker架构

        简介

Docker使用客户端服务器(C/S)架构模式,使用远程API来管理和创建Docker容器。
Docker容器通过Docker镜像来创建。
容器与镜像的关系类似于面向对象编程中的对象与类。

        Docker基本概念

Docker包括三个基本概念
        镜像(Image )
        容器(Container )
        仓库( Repository ) 
理解了这三个概念,就理解了Docker的整个生命周期。

        Docker引擎

Docker引擎组件的流程如下图所示:
 

Docker使用客户端服务器(C/S)架构模式,使用远程API来管理和创建Docker容器。
Docker容器通过Docker镜像来创建。

        Docker架构

容器与镜像的关系类似于面向对象编程中的对象与类。

        Docker镜像

是一个存入镜像的仓库。通常被部署在互联网服务器或者云端。
Docker Hub( https://hub.docker.com)提供了庞大的镜像集合供使用。
Docker镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数 (如匿名卷、环境变量、用户等)。镜像不包含任何动态数据,其内容在构建之后也不会被改变。

三、Docker仓库

Docker仓库用来保存镜像,可以理解为代码控制中的代码仓库。
Docker Hu(https://hub.docker.com)提供了庞大的镜像集合供使用。

        公有Docker Registry

Docker Registry公开服务是开放给用户使用、允许用户管理镜像的Registry服务。一般这类公开服务允许用户免费上传、下载公开的镜像,并可能提供收费服务供用户管理私有镜像。

最常使用的Registry公开服务是官方的Docker Hub,这也是默认的Registry,并拥有大量的高质量的官方镜像。除此以外,还有Coreos 的Quay.io, CoreOs 相关的镜像存储在这里; Google 的Google Container Registry, Kubernetes的镜像使用的就是这个服务。

由于某些原因,在国内访问这些服务可能会比较慢。国内的一些云服务商提供了针对Docker Hub的镜像服务( Registry Mirror ),这些镜像服务被称为加速器。常见的有阿里云加速器、DaoCloud 加速器等。使用加速器会直接从国内的地址下载Docker Hub的镜像,比直接从Docker Hub下载速度会提高很多。

国内也有一些云服务商提供类似于Docker Hub的公开服务。比如时速云镜像仓库、网易云镜像服务、 DaoCloud镜像市场、阿里云镜像库等。

        私有Docker Registry

除了使用公开服务外,用户还可以在本地搭建私有Docker Registry。Docker 官方提供了Docker Registry镜像,可以直接使用做为私有Registry服务。

开源的Docker Registry镜像只提供了Docker Registry API的服务端实现,足以支持docker 命令,不影响使用。但不包含图形界面,以及镜豫维护、用户管理、访问控制等高级功能。在官方的商业化版本Docker Trusted Registry中,提供了这些高级功能。

除了官方的Docker Registry外,还有第三方软件实现了Docker RegistryAPI,甚至提供了用户界面以及一些高级功能。比如,VMWare Harbor和Sonatype Nexus.

四、Docker安装

官方提供的安装教程:
https://docs.docker.com/install/linux/docker-ce/centos/#install-using-the-repository

        CentOS安装要求:

Docker支持以下的CentOS版本: 
CentOS 7 (64 bit)
CentOS 6.5 (64 bit)或更高的版本

        安装

目前,CentOS 仅发行版本中的内核支持Docker, Docker 运行在CentOS7上,要求系统为64位、系统内核版本为3.10以上。Docker 运行在CentOS 6.5或更高的版本的Centos上,要求系统为64位、系统内核版本为2.6.32-431或者更高版本。


1、校验版本

uname -r         #校验linux内核版本(3.10以上版本)

从2017年3月开始docker在原来的基础上分为两个分支版本: Docker CE和Docker EE。
Docker CE即社区免费版,Docker EE即企业版,强调安全,但需付费使用。
本文介绍Docker CE的安装使用。

2、移除旧的版本

sudo yum remove docker \
    docker-client \
    docker-cl1ent-latest \
    docker-common \
    docker-latest \ 
    docker-latest-logrotate \
    docker-logrotate \
    docker-selinux \
    docker-engine-selinux \
    docker-engine

如果yum报告未安装这些软件包,则可以。

3、安装一些必要的系统工具
安装所需的软件包。yum-utils 提供了yum-config-manager应用,并device-mapper-persistent-
data和lvm2由需要devicemapper存储驱动程序。

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

4、添加软件源信息
源1: (官方推荐)

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

源2: (阿里云源)

sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

5、更新yum缓存:

sudo yum makecache fast

6、安装Docker-CE

sudo yum -y install docker-ce

7、启动Docker后台服务

sudo systemctl start docker

8、重启Docker服务

sudo systemctl restart docker

9、安装成功后可通过查看

docker version

        卸载

执行以下命令来删除Docker CE:

$ sudo yum remove docker-ce
$ sudo rm -rf /var/lib/docker

五、Docker 镜像加速器

        鉴于国内网络问题,后续拉取Docker镜像十分缓慢,我们可以需要配置加速器来解决
使用Docker的时候,需要经常从官方获取镜像。但是由于显而易见的网络原因,拉取镜像的过程非常耗时,严重影响使用Docker 的体验。因此DaoCloud推出了加速器工具解决这个难题,通过智能路由和缓存机制,极大提升了国内网络访问Docker Hub的速度,目前已经拥有了广泛的用户群体,并得到了Docker 官方的大力推荐。如果您是在国内的网络环境使用 Docker,那么Docker 加速器一定能帮助到您。

Docker官方和国内很多云服务商都提供了国内加速器服务,例如:
        Docker官方提供的中国registry miror
        阿里云加速器
        DaoCloud加速器

        Docker官方加速器

我们以Docker官方加速器进行介绍
https://docs.docker.com/registry/recipes/mirror/#use-case-the-china-regstry-mirror
通过命令查看:在/etc/docker/daemon.json中写入如下内容(如果文件不存在请新建该文件)

{
"registry-mirrors":["https://registry.docker-cn.com"]
}

注意,一定要保证该文件符合json规范,否则Docker将不能启动
重启Docker:

sudo systemctl daemon-reload
sudo systemctl restart docker


        阿里云加速器

阿里云的镜像源有个加速器,可以加速你获取容器的速度。这个加速器地址是每个人专属的。
网址: https://dev.aliyun.com/

登录阿里云个人帐号。
管理中心--容器镜像服务--镜像加速器

https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

sudo mkdir -p /etc/docker

cd /etc/docker

vi daemon.json
{
"registry-mirrors": ["https://gxeo3yz7.mirror.aliyuncs.com"]
}


sudo systemctl daemon-reload
sudo systemctl restart docker

        检查加速器是否生效

配置加速器之后,如果拉取镜像仍然十分缓慢,请手动检查加速器配置是否生效,在命令行执行docker info,查看镜像地址是否匹配,如匹配,说明配置成功

docker info

六、Docker镜像

镜像是Docker的三大组件之一。
Docker运行容器前需要本地存在对应的镜像,如果本地不存,Docker会从镜像仓库下载。
本节将介绍更多关于镜像的内容,包括:
从仓库获取镜像;
管理本地主机上的镜像;
介绍镜像实现的基本原理;

Docker命令使用
获取命令行帮助信息直接在命令行内输入docker命令后敲回车

        Docker获取镜像

之前提到过,Docker Hub上有大量的高质量的镜像可以用,这里我们就说一下怎么获取这些镜像。

查找镜像
我们可以从Docker Hub网站来搜索镜像,Docker Hub网址为: https://hub.docker.com/
我们也可以使用docker search命令来搜索镜像。比如我们需要一个tomat的镜像来作为我们的web服务。 我们可以通过docker search命令搜索tomcat来寻找适合我们的镜像。

[root@docker ~]# docker search --help
    Usage: docker search [OPTIONS] TERM
    Search the Docker Hub for images
    Options:
    -f, --filter filter Filter output based on conditions provided
    根据提供的条件过滤器输出
    --format string Pretty-print search using a Go template
    用Go模板打印出漂亮的搜索结果
    --limit int Max number of search results (default 25)
    提索结果的最大数量(默认值为25)
    --no- trunc Don't truncate output
    不要截断输出

docker search tomcat

获取镜像
从Docker镜像仓库获取镜像的命令是 docker pull 其命令格式为: 

docker pull [选项] [Docker Registey 地址[:端口号]/] 镜像名[:标签]

具体的选项可以通过docker pull --help 命令看到,这里我们说一下镜像名称的格式。

- Docker 镜像仓库地址: 地址的格式一般是<域名/IP>[:端口号]。默认地址是Docker Hub。
- 仓库名:这里的仓库名是两段式名称,即 <用户名>/<软件名>。对于Docker Hub, 
如果不给出用户名,则默认为library,也就是百方镜像。

我们需要一个tomcat的镜像来作为我们的web服务。通过docker pull获取镜像

docker pull tomcat:版本号     //不写 :版本号代表laster版本

        Docker列出镜像

要想列出已经下载下来的镜像,可以使用docker image ls命令。

docker images 

docker image ls

列表包含了仓库名、标签、镜像ID、创建时间以及所占用的空间。
其中仓库名、标签在之前的基础概念已经介绍过了。镜像ID则是镜像的唯一标识,一个镜像可以对应多个标签。
因此,如果拥有相同的ID,因为它们对应的是同一个镜像。

        Docker删除本地镜像

语法:

docker image rm [选项] <镜像1> [<镜像2> ....]

用 ID、镜像名、摘要删除镜像
其中,<镜像>可以是镜像短ID、镜像长ID、镜像名或者镜像摘要。

如果要删除本地的镜像,可以使用docker image rmi / rm 命令

docker image rmi 镜像ID    //常用

要删除镜像必须确认此镜像目前没有被任何容器使用

        Docker其它辅助命令

查看本地镜像的IMAGE ID

docker images -q

查看一个镜像的制作历程

docker history 镜像名称

        Docker保存镜像

备份本地仓库的镜像
1、用save子命令将本地仓库的镜像保存当前目录下

docker save -o tomcat.guo.tar镜像名称

2、将本地目录下的镜像备份文件导入到本地Docker仓库
#方式一(不输出详细信息):

docker load -i tomcat.guo.tar

#方式二(输出详细信息):

docker load < tomcat.guo.tar

七、容器

容器是Docker核心概念。
简单的说,容器是独立运行的一个或一组应用,以及它们的运行环境。
对应的,虚拟机可以理解为模拟运行的一整套操作系统(提供了运行态环境和其他系统环境)和运行在上面的应用。
如下将具体介绍如何来管理一个容器,包活创建、启动和停止等

        1、查看容器状态

docker ps        //查看运行的容器
docker ps -a     //查看所有的容器(包含运行和退出)
docker container ls
docker container ls-a

        2、Docker启动容器

启动容器有二种方式,一种是基于镜像新建一个容器并启动,一种是将在终止状态( stopped)的容器重新启动

docker run 参数 镜像名称:tag 执行的命令

常用参数:
        -i 保持和docker容器内的交互,启动容器时,运行的命令结束后,容器依然存活,没有退出(默认是会退出,即停止的)
        -t 为容器的标准给入虚拟一个tty
        -d后台运行容器
        --rm 容器在启动后,执行完成命令或程序后就销毁
        --name 给容器起一个自定义名称
        -p 宿主机:内部端口

docker run --rm -d --name tomcat1 -p 8081:8080 tomcat

        3、停止容器

通过docker ps找到容器id

docker stop 容器ID    //停止正在运行容器〔或Ctrl+c)

docker stop $(docker ps -a -q)    //停止所有的容器

docker container stop tomcat1/!停止正运行容器(ID或Names)

        4、启动已终止容器

通过docker ps找到容器id

docker start 容器名/容器ID

        6、关闭和删除容器

docker rm 容器ID

        7、Docker守护态运行

更多的时候,需要让 Docker在后台运行而不是直接把执行命令的结果输出在当前宿主机下。此时,可以通过添加 -d 参数来实现
如果不使用-d参数运行容器:将会在当前宿主机运行。

如果使用了-d参数运行容器。此时容器会在后台运行并不会把输出的结果(STDOUT)打印到宿主机上面(输出结果可以用docker logs查看)。

docker logs tomcat1    //(ID或Names)

        8、Docker进入容器

某些时候需要进入容器进行操作,使用docker exec命令
-i-t参数
docker exec后边可以跟多个参数,这里主要说明-i-t参数。
只用-i参数时,由于没有分配伪终端,界面没有我们熟悉的Linux命令提示符,但命令执行结果仍然可以返回。
当-i-t参数一起使用时,则可以看到我们熟悉的Linux命令提示符。

docker exec -it 容器ID(Names) bash

示例:
进入容器。对默认的tomcat进行页面修改,然后再访问查看效果。

注意默认容器内linux包是最小安装。只拥有最基本的命令
exit,不会导致容器的停止

docker exec -it tomcat1 bash    //进入容器名称叫tomcat1

cd webapps

mkdir ROOT

echo 'hello-docker' >>index.html    //对容器内的index.html进行字符串追加

        9、在宿主机和容器之间交换文件

在宿主机和容器之间相互COPY文件 cp的用法如下

docker cp [OPTIONS] 容器名:文件路径  宿主机路径    //容器中复制到宿主机
docker cp [OPTIONS] 宿主机路径 容器名:文件路径     //宿主机复制到容器中

宿主机复制一个图片到容器中:将png图片复制到了容器指定目录下

docker cp guoweixin.png tomcat2:/usr/local/tomcat/webapps/ROOT

将容器内的index .jsp复制出来,修改再复制回去
 

docker cp tomcat2:/usr/local/tomcat/webapps/ROOT/index.jsp /root

八、Docker查看日志

docker logs 容器名称/ID
docker logs -f -t --since="2018-12-1" --tail=10 tomcat

--since :此参数指定了输出日志开始日期,即只输出指定日期之后的日志。
-f:查看实时日志
-t:查看日志产生的日期
--tail=10:查看最后的10条日志
tomcat:容器名称

九、Docker数据卷

问题:通过镜像创建一个容器。容器一旦被销毁,则容器内的数据将一并被删除。但有些情况下,通过服务器上传的图片出会丢失。容器中的数据不是持久化状态的。

那有没有一种独立于容器、提供持久化并能服务于多个容器的东西呢?

        什么是数据卷

数据卷:是一个可供一个或多个容器使用的特殊目录

特性:
数据卷可以在容器之间共享和重用
对数据卷的修改会立马生效
对数据卷的更新,不会影响镜像
数据卷默认会一直存在,即使容器被删除

为什么需要数据卷?

这得从docker容器的文件系统说起。出于效率等一系列原因,docker容器的文件系统在宿主机上存在的方式很复杂,这会带来下面几个问题:
        不能在宿主机上很方便地访问容器中的文件。
        无法在多个容器之间共享数据。
        当容器删除时,容器中产生的数据将丢失。

为了解决这些问题,docker引入了数据卷(volume)机制。数据卷是存在于一个或多个容器中的特定文件或文件夹,这个文件或文件夹以独立于docker文件系统的形式存在于宿主机中。
数据卷的最大特定是:其生存周期独立于容器的生存周期。

使用数据卷的最佳场景
        在多个容器之间共享数据,多个容器可以同时以只读或者读写的方式挂载同一个数据卷,从而共享数据卷中的数据。
        当宿主机不能保证一定存在某个目录或一些固定路径的文件时,使用数据卷可以规避这种限制带来的问题
        当你想把容器中的数据存储在宿主机之外的地方时,比如远程主机上或云存储上。
        当你需要巴容器数据在不同的宿主机之间备份、恢复或迁移时,数据卷是很好的选择。

        数据卷的应用

#1创建数据卷
docker volume create 数据卷名称
创建数据卷之后,默认会存放到目录: / var/lib/docker/volume/数据卷名称/_data目录下

#2查看数据卷
docker volume inspect 数据卷名称

#3查看全部教据卷信息
docker volume ls

#4删除数据卷
docker volume rm 数据卷名称

#5应用数据卷
#5.1 当你映射数据卷时,如果数据卷不存在,Docker会帮你自动创建

docker run -v  数据卷名称:容器内路径  镜像ID

#5.2直接指定一个路径作为数据卷的存储位置

docker run -v 路径:容器内部的路径 镜像ID

docker run -d --name tomcat-8080 -p 8080:8080 -v /root/docker-volumn/exam:/usr/local/tomcat/webapps/exam tomcat

centos防火墙端口

开放8080端口(如下命令只针对Centos7以上)

查看已经开放的端口:

firewall-cmd --list-ports

开启端口:

firewall-cmd --zone=public --add-port=8080/tcp --permanent

关闭端口:

firewall-cmd --permanent --zone=public --remove-port=8080/tcp

开启防火墙:

systemctl start firewalld

重启/关闭防火墙:

firewall-cmd --reload #重启
firewall systemctl stop firewalld     #停止
firewall systemctl disable firewalld    #禁止firewall开机启动


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值