因公司等保业务需要,必须搭建一台堡垒机,安装JumpServer服务时,发现和nginx服务的80端口冲突,故想到利用docker安装部署JumpServer,可以解决80端口冲突的问题,也可以方便后面安装JumpServer

下载镜像:

docker pull jumpserver/core:v2.17.3

注:可以去docker官方镜像去拉取最新版本

https://hub.docker.com/r/jumpserver/core/tags

运行镜像:

docker run --name jms_server -d -p 8011:80 jumpserver/core:v2.17.3

注:为了防止80端口被宿主机其他进程所占用,因此将容器端口映射到宿主机的8011上

在参数当中因为有加入后台运行参数-d,容器运行之后终端不会进入容器bash中,而且当命令执行成功之后,docker将会返回容器ID,如果返回信息则可能出现了异常错误,正常返回结果如下所示:9a53236bb8ed6facd51284b140f3b9c242f07a170e15eb914f156e414eb982ef

docker run :创建一个新的容器并运行一个命令

语法

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

OPTIONS说明:

  • -a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;
  • -d: 后台运行容器,并返回容器ID;
  • -i: 以交互模式运行容器,通常与 -t 同时使用;
  • -P: 随机端口映射,容器内部端口随机映射到主机的端口
  • -p: 指定端口映射,格式为:主机(宿主)端口:容器端口
  • -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
  • --name="nginx-lb": 为容器指定一个名称;
  • --dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;
  • --dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;
  • -h "mars": 指定容器的hostname;
  • -e username="ritchie": 设置环境变量;
  • --env-file=[]: 从指定文件读入环境变量;
  • --cpuset="0-2" or --cpuset="0,1,2": 绑定容器到指定CPU运行;
  • -m :设置容器使用内存最大值;
  • --net="bridge": 指定容器的网络连接类型,支持 bridge/host/none/container:<name|id> 四种类型;</name|id>
  • --link=[]: 添加链接到另一个容器;
  • --expose=[]: 开放一个端口或一组端口;
  • --volume , -v: 绑定一个卷

运行检查

docker ps

在返回结果当中可以看到之前docker返回的容器ID正处于运行状态,便可以确定容器运行正常,接着笔者还需要通过浏览器来检测是否运行成功,使用浏览器打开如下地址:

http://您的服务器IP:8011/

注:需要注意检查端口是否开放

停止服务

docker stop 7705e142cf0d