Docker

本文介绍了Docker的基础知识,包括其历史、工作原理和安装过程。详细讲解了如何使用Docker命令进行镜像搜索、下载、删除,以及容器的创建、启动、停止和删除。还演示了如何通过Docker运行Nginx和Tomcat,并提到了Docker的可视化工具Portainer。
摘要由CSDN通过智能技术生成

Docker概述

Docker学习

  • Docker概述

  • Docker安装

  • Docker命令

    • 镜像命令

    • 容器命令

    • 操作命令

  • Docker镜像

  • 容器数据卷

  • DockerFile

  • Docker网络原理

  • IDEA整合Docker

  • Docker Compose(集群的管理)

  • Docker Swarm

  • CI/CD jenkins

Docker的历史

2010年,dotCloud,美国 几个年轻人做

2013年开源

2014.4.9 Docker1.0发布

docker也是虚拟化技术,与虚拟机不同的是,docker只是虚拟软件部分,比较小巧。Docker又被称为容器化技术。

聊聊Docker

Docker是基于go语言开发的!开源项目。

官网:https://www.docker.com/

文档地址:https://docs.docker.com/ 文档比较详细!

镜像仓库地址:https://hub.docker.com/ (存储镜像)

Docker 安装

Docker的基本组成

img

镜像(image):

docker镜像就好比一个模板,可以通过这个模板来创建容器服务,tomcat镜像 ==》run ==》tomcat01容器(提供服务器),通过这个镜像可以创建多个容器(最终服务运行或者项目运行在容器中)

容器(container):

Docker利用容器技术,独立运行一个或者一组应用,通过镜像来创建的。

启动,停止,删除,基本命令!

目前可以把这个容器理解为简易的linux系统

仓库(repository):

仓库就是存放镜像的地方,仓库分公用仓库和私有仓库

安装Docker

环境准备

linux服务器

环境查看

 # 系统内核 3.10 以上
 [root@VM-16-9-centos /]# uname -r
 3.10.0-862.el7.x86_64
 # 系统版本
 [root@VM-16-9-centos /]# cat /etc/os-release
 NAME="CentOS Linux"
 VERSION="7 (Core)"
 ID="centos"
 ID_LIKE="rhel fedora"
 VERSION_ID="7"
 PRETTY_NAME="CentOS Linux 7 (Core)"
 ANSI_COLOR="0;31"
 CPE_NAME="cpe:/o:centos:centos:7"
 HOME_URL="https://www.centos.org/"
 BUG_REPORT_URL="https://bugs.centos.org/"
 ​
 CENTOS_MANTISBT_PROJECT="CentOS-7"
 CENTOS_MANTISBT_PROJECT_VERSION="7"
 REDHAT_SUPPORT_PRODUCT="centos"
 REDHAT_SUPPORT_PRODUCT_VERSION="7"

 

安装

帮助文档:

 # 1.卸载旧的版本
 yum remove docker \
                   docker-client \
                   docker-client-latest \
                   docker-common \
                   docker-latest \
                   docker-latest-logrotate \
                   docker-logrotate \
                   docker-engine
 # 2.需要的安装包
 yum install -y yum-utils
 ​
 # 3.设置镜像的仓库 
 国外的:
     yum-config-manager \
     --add-repo \
     https://download.docker.com/linux/centos/docker-ce.repo
 阿里云:(推荐使用)
     yum-config-manager \
     --add-repo \
     http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
     
  # 4.安装docker相关  docker-ce社区  ee企业版
  yum install docker-ce docker-ce-cli containerd.io
 ​
 # 5.启动docker
 systemctl start docker
 ​
 # 6.判断启动成功
 docker version

 

 # 7.运行hello-world程序
 docker run hello-world

 

 # 8.查看下载的镜像
 [root@VM-16-9-centos /]# docker images
 REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
 hello-world         latest              bf756fb1ae65        10 months ago       13.3kB
 ​

卸载docker

 #1.卸载依赖
 yum remove docker-ce docker-ce-cli containerd.io
 #2.删除目录
 rm -rf /var/lib/docker

腾讯云配置镜像加速

 #1.创建 daemon.json文件 (创建文件夹命令:mkdir)
 touch /etc/docker/daemon.json
 ​
 2.打开文件,加入配置
 vim daemon.json (编辑)
 esc     (切换模式)
 :wq!    (保存并强制退出)
     
 3.重新启动 Docker 服务。
 sudo systemctl daemon-reload
 sudo systemctl restart docker
 ​
 4.检查加速器是否生效
 docker info

daemon.json内加入的内容

{ "registry-mirrors": [ "https://mirror.ccs.tencentyun.com" ] }

  Registry Mirrors:          (显示此内容说明腾讯云docker镜像生效)
   https://mirror.ccs.tencentyun.com/

底层原理

Docker是怎么工作的

Docker是一个Client -Server结构的系统,Docker的守护进程运行在主机上。通过Socket从客户端访问!

DockerServer接受到Docker-Client的指令,就会执行这个命令!

Dcoker的常用命令

帮助命令

 docker version      #docker版本信息
 docker info         #显示docker的系统信息,包括镜像和容器的数量
 docker --help       #万能命令

docker命令文档的地址:https://docs.docker.com/engine/reference/

镜像命令

docker images 查看所有本地主机上的镜像

 [root@VM-16-9-centos /]# docker images
 REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
 hello-world         latest              bf756fb1ae65        10 months ago       13.3k    
 # 解释
 REPOSITORY          镜像的仓库源
 TAG                 镜像的标签
 IMAGE ID            镜像的id
 CREATED             镜像的创建时间
 SIZE                镜像的大小
 #可选项
 Options:
   -a, --all             Show all images (default hides intermediate images)
       --digests         Show digests
   -f, --filter filter   Filter output based on conditions provided
       --format string   Pretty-print images using a Go template
       --no-trunc        Don't truncate output
   -q, --quiet           Only show numeric IDs   只显示镜像的id

docker search搜索镜像

 [root@VM-16-9-centos /]# docker search mysql
 NAME    DESCRIPTION                                     STARS      OFFICIAL    AUTOMATED   
 mysql   MySQL is a widely used, open-source relation…   10115        [OK]
 ​
 # 可选项,通过搜索过滤
  -f, --filter filter   Filter output based on conditions provided
       --format string   Pretty-print search using a Go template
       --limit int       Max number of search results (default 25)
       --no-trunc        Don't truncate output
 # 例如
 [root@VM-16-9-centos /]# docker search mysql --filter=stars=3000
 NAME        DESCRIPTION                                     STARS   OFFICIAL   AUTOMATED
 mysql       MySQL is a widely used, open-source relation…   10115     [OK]
 mariadb     MariaDB is a community-developed fork of MyS…   3715      [OK]

docker pull 下载镜像

 # 下载镜像 docker pull 镜像名 [:tag]
 [root@VM-16-9-centos /]# docker pull mysql
 Using default tag: latest           # 如果不写tag,默认下载latest
 latest: Pulling from library/mysql
 bb79b6b2107f: Pull complete         #分层下载,docker image的核心  联合文件系统
 49e22f6fb9f7: Pull complete
 842b1255668c: Pull complete
 9f48d1f43000: Pull complete
 c693f0615bce: Pull complete
 8a621b9dbed2: Pull complete
 0807d32aef13: Pull complete
 a56aca0feb17: Pull complete
 de9d45fd0f07: Pull complete
 1d68a49161cc: Pull complete
 d16d318b774e: Pull complete
 49e112c55976: Pull complete
 Digest: sha256:8c17271df53ee3b843d6e16d46cff13f22c9c04d6982eb15a9a47bd5c9ac7e2d #签名
 Status: Downloaded newer image for mysql:latest     
 docker.io/library/mysql:latest      #真实地址
 ​
 #指定版本下载
 [root@VM-16-9-centos /]# docker pull mysql:5.7
 5.7: Pulling from library/mysql
 bb79b6b2107f: Already exists
 49e22f6fb9f7: Already exists
 842b1255668c: Already exists
 9f48d1f43000: Already exists
 c693f0615bce: Already exists
 8a621b9dbed2: Already exists
 0807d32aef13: Already exists
 f15d42f48bd9: Pull complete
 098ceecc0c8d: Pull complete
 b6fead9737bc: Pull complete
 351d223d3d76: Pull complete
 Digest: sha256:4d2b34e99c14edb99cdd95ddad4d9aa7ea3f2c4405ff0c3509a29dc40bcb10ef
 Status: Downloaded newer image for mysql:5.7
 docker.io/library/mysql:5.7

docker rmi 删除镜像

 [root@VM-16-9-centos /]# docker rmi -f 容器id                     #删除指定容器
 [root@VM-16-9-centos /]# docker rmi -f 容器id 容器id 容器id        #删除多个容器
 [root@VM-16-9-centos /]# docker rmi -f $(docker images -aq)      #删除所有容器

 

容器命令

说明 :我们有了镜像才可以创建容器,linux ,下载一个centos镜像来测试学习

 docker run [可选参数] iamge
 ​
 #参数说明
 --name=“Name"    容器名字,用来区分容器
 -d               后台方式运行
 -it              使用交互方式运行,进入容器查看内容
 -p               指定容器的端口号 -p  8080:8080
     -p  ip:主机端口:容器端口
     -p  主机端口:容器端口(常用)
     -p  容器端口
 -p     随机指定端口

测试,启动并进入容器

 [root@VM-16-9-centos /]# docker run -it centos /bin/bash
 [root@18a0adac3eff /]#
 [root@18a0adac3eff /]# ls
 bin  etc   lib    lost+found  mnt  proc  run   srv  tmp  var
 dev  home  lib64  media       opt  root  sbin  sys  usr
 [root@18a0adac3eff /]# exit
 exit
 [root@VM-16-9-centos /]# ls
 bin   data  etc   lib    lost+found  mnt  proc  run   srv  tmp  var
 boot  dev   home  lib64  media       opt  root  sbin  sys  usr
 [root@VM-16-9-centos /]#

列出所有运行的容器

 #docker ps 命令  #查看当前正在运行的容器
     -a          #查看曾经运行的容器
     -n=?        #显示最近创建的容器
     -q          #只显示容器的编号
 ​
 [root@VM-16-9-centos /]# docker ps          #查看当前正在运行的容器    
 CONTAINER ID   IMAGE     COMMAND       CREATED        STATUS       PORTS       NAMES
 [root@VM-16-9-centos /]# docker ps -a       #查看曾经运行的容器
 CONTAINER ID  IMAGE         COMMAND         CREATED         STATUS      PORTS        NAMES
 18a0adac3eff  centos        "/bin/bash" 3 minutes ago    Exited (0) 2 minutes ago            loving_hermann
 3d51fffe8a64  hello-world   "/hello"     6 hours ago      Exited (0) 6 hours ago        wonderful_poincare
 ​

退出容器

 exit        #直接容器停止并退出
 Ctrl+P+Q    #容器不停止推出

删除容器

 docker rm 容器id                  #删除指定容器
 docker rm $(docker ps -aq)        #删除所有容器

启动和停止容器操作

 docker start 容器id               #启动容器
 docker restart 容器id             #重启容器
 docker stop 容器id                #停止当前正在运行的容器
 docker kill 容器id                #强制定制当前容器

常用其他命令

后台启动容器

 [root@VM-16-9-centos /]# docker run -it centos
 [root@b1e7e7913fbb /]# [root@VM-16-9-centos /]#

查看日志

 [root@VM-16-9-centos /]# docker logs -f -t --tail 10 b1e7e7913fbb   #查看指定日志的最近10条信息

查看容器中进程信息

 [root@VM-16-9-centos /]# docker top b1e7e7913fbb
 UID    PID     PPID     C    STIME   TTY     TIME         CMD
 root   31400   31384    0    17:03   pts/0   00:00:00    /bin/bash

查看镜像的元数据

 [root@VM-16-9-centos /]# docker ps -a       #当前运行的容器
 CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES
 b1e7e7913fbb        centos              "/bin/bash"         13 minutes ago      Up 13 minutes                                   loving_montalcini
 18a0adac3eff        centos              "/bin/bash"         42 minutes ago      Exited (0) 40 minutes ago                       loving_hermann
 3d51fffe8a64        hello-world         "/hello"            6 hours ago         Exited (0) 6 hours ago                          wonderful_poincare
 ​
 #docker inspect 容器id
 #测试
 [root@VM-16-9-centos /]# docker inspect b1e7e7913fbb
 [
     {
         "Id": "b1e7e7913fbbb76ba785ae148cc6ec4b22714445df2d583d4eca564111726130",
         "Created": "2020-10-30T09:03:43.939649072Z",    #创建时间
         "Path": "/bin/bash",                            #默认控制台
         "Args": [],                                     #传递参数
         "State": {                                      #当前状态
             "Status": "running",
             "Running": true,
             "Paused": false,
             "Restarting": false,
             "OOMKilled": false,
             "Dead": false,
             "Pid": 31400,
             "ExitCode": 0,
             "Error": "",
             "StartedAt": "2020-10-30T09:03:44.216040536Z",
             "FinishedAt": "0001-01-01T00:00:00Z"
         },
         "Image": "sha256:0d120b6ccaa8c5e149176798b3501d4dd1885f961922497cd0abef155c869566",
         "ResolvConfPath": "/var/lib/docker/containers/b1e7e7913fbbb76ba785ae148cc6ec4b22714445df2d583d4eca564111726130/resolv.conf",
         "HostnamePath": "/var/lib/docker/containers/b1e7e7913fbbb76ba785ae148cc6ec4b22714445df2d583d4eca564111726130/hostname",
         "HostsPath": "/var/lib/docker/containers/b1e7e7913fbbb76ba785ae148cc6ec4b22714445df2d583d4eca564111726130/hosts",
         "LogPath": "/var/lib/docker/containers/b1e7e7913fbbb76ba785ae148cc6ec4b22714445df2d583d4eca564111726130/b1e7e7913fbbb76ba785ae148cc6ec4b22714445df2d583d4eca564111726130-json.log",
         "Name": "/loving_montalcini",
         "RestartCount": 0,
         "Driver": "overlay2",
         "Platform": "linux",
         "MountLabel": "",
         "ProcessLabel": "",
         "AppArmorProfile": "",
         "ExecIDs": null,
         "HostConfig": {                     #主机配置
             "Binds": null,
             "ContainerIDFile": "",
             "LogConfig": {
                 "Type": "json-file",
                 "Config": {}
             },
             "NetworkMode": "default",
             "PortBindings": {},
             "RestartPolicy": {
                 "Name": "no",
                 "MaximumRetryCount": 0
             },
             "AutoRemove": false,
             "VolumeDriver": "",
             "VolumesFrom": null,
             "CapAdd": null,
             "CapDrop": null,
             "Capabilities": null,
             "Dns": [],
             "DnsOptions": [],
             "DnsSearch": [],
             "ExtraHosts": null,
             "GroupAdd": null,
             "IpcMode": "private",
             "Cgroup": "",
             "Links": null,
             "OomScoreAdj": 0,
             "PidMode": "",
             "Privileged": false,
             "PublishAllPorts": false,
             "ReadonlyRootfs": false,
             "SecurityOpt": null,
             "UTSMode": "",
             "UsernsMode": "",
             "ShmSize": 67108864,
             "Runtime": "runc",
             "ConsoleSize": [
                 0,
                 0
             ],
             "Isolation": "",
             "CpuShares": 0,
             "Memory": 0,
             "NanoCpus": 0,
             "CgroupParent": "",
             "BlkioWeight": 0,
             "BlkioWeightDevice": [],
             "BlkioDeviceReadBps": null,
             "BlkioDeviceWriteBps": null,
             "BlkioDeviceReadIOps": null,
             "BlkioDeviceWriteIOps": null,
             "CpuPeriod": 0,
             "CpuQuota": 0,
             "CpuRealtimePeriod": 0,
             "CpuRealtimeRuntime": 0,
             "CpusetCpus": "",
             "CpusetMems": "",
             "Devices": [],
             "DeviceCgroupRules": null,
             "DeviceRequests": null,
             "KernelMemory": 0,
             "KernelMemoryTCP": 0,
             "MemoryReservation": 0,
             "MemorySwap": 0,
             "MemorySwappiness": null,
             "OomKillDisable": false,
             "PidsLimit": null,
             "Ulimits": null,
             "CpuCount": 0,
             "CpuPercent": 0,
             "IOMaximumIOps": 0,
             "IOMaximumBandwidth": 0,
             "MaskedPaths": [
                 "/proc/asound",
                 "/proc/acpi",
                 "/proc/kcore",
                 "/proc/keys",
                 "/proc/latency_stats",
                 "/proc/timer_list",
                 "/proc/timer_stats",
                 "/proc/sched_debug",
                 "/proc/scsi",
                 "/sys/firmware"
             ],
             "ReadonlyPaths": [
                 "/proc/bus",
                 "/proc/fs",
                 "/proc/irq",
                 "/proc/sys",
                 "/proc/sysrq-trigger"
             ]
         },
         "GraphDriver": {
             "Data": {
                 "LowerDir": "/var/lib/docker/overlay2/76fedde73f783a0dee97523966854710f935ed3ae01d194a480a859f1f730cc0-init/diff:/var/lib/docker/overlay2/691e4c8053998fafe2f2ed1547b87578994b99401dbfc41ff5533ab91e4b37fa/diff",
                 "MergedDir": "/var/lib/docker/overlay2/76fedde73f783a0dee97523966854710f935ed3ae01d194a480a859f1f730cc0/merged",
                 "UpperDir": "/var/lib/docker/overlay2/76fedde73f783a0dee97523966854710f935ed3ae01d194a480a859f1f730cc0/diff",
                 "WorkDir": "/var/lib/docker/overlay2/76fedde73f783a0dee97523966854710f935ed3ae01d194a480a859f1f730cc0/work"
             },
             "Name": "overlay2"
         },
         "Mounts": [],                   #挂载
         "Config": {
             "Hostname": "b1e7e7913fbb",
             "Domainname": "",
             "User": "",
             "AttachStdin": true,
             "AttachStdout": true,
             "AttachStderr": true,
             "Tty": true,
             "OpenStdin": true,
             "StdinOnce": true,
             "Env": [
                 "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
             ],
             "Cmd": [
                 "/bin/bash"
             ],
             "Image": "centos",
             "Volumes": null,
             "WorkingDir": "",
             "Entrypoint": null,
             "OnBuild": null,
             "Labels": {
                 "org.label-schema.build-date": "20200809",
                 "org.label-schema.license": "GPLv2",
                 "org.label-schema.name": "CentOS Base Image",
                 "org.label-schema.schema-version": "1.0",
                 "org.label-schema.vendor": "CentOS"
             }
         },
         "NetworkSettings": {                #网络
             "Bridge": "",
             "SandboxID": "a798877b2f81d24273b9e9268d84e84c2cf11c1bc2ae9f7e7c3d9d5608ed0579",
             "HairpinMode": false,
             "LinkLocalIPv6Address": "",
             "LinkLocalIPv6PrefixLen": 0,
             "Ports": {},
             "SandboxKey": "/var/run/docker/netns/a798877b2f81",
             "SecondaryIPAddresses": null,
             "SecondaryIPv6Addresses": null,
             "EndpointID": "1d5732d277f37a347991434df07c02cd8ca90f9c93f03d6fe90bb8090cd5436e",
             "Gateway": "172.18.0.1",
             "GlobalIPv6Address": "",
             "GlobalIPv6PrefixLen": 0,
             "IPAddress": "172.18.0.2",
             "IPPrefixLen": 16,
             "IPv6Gateway": "",
             "MacAddress": "02:42:ac:12:00:02",
             "Networks": {
                 "bridge": {
                     "IPAMConfig": null,
                     "Links": null,
                     "Aliases": null,
                     "NetworkID": "b5173200987fdb24c1b9476bbedd22b0fc0966993c1eda25d4a33ffaac88ed45",
                     "EndpointID": "1d5732d277f37a347991434df07c02cd8ca90f9c93f03d6fe90bb8090cd5436e",
                     "Gateway": "172.18.0.1",
                     "IPAddress": "172.18.0.2",
                     "IPPrefixLen": 16,
                     "IPv6Gateway": "",
                     "GlobalIPv6Address": "",
                     "GlobalIPv6PrefixLen": 0,
                     "MacAddress": "02:42:ac:12:00:02",
                     "DriverOpts": null
                 }
             }
         }
     }
 ]
 ​

进入当前运行的容器

 #我们通常容器使用后台方式运行,需要进入容器,修改一些配置
 ​
 #方式一:   
 docker exec -it 容器id bashShell   #进入容器后开启一个新的终端,可以在里面操作(常用)
 #测试
 [root@VM-16-9-centos /]# docker ps
 CONTAINERID    IMAGE    COMMAND     CREATED       STATUS        PORTS       NAMES
 b1e7e7913fbb   centos  "/bin/bash"  21 minutes ago  Up 21 minutes        loving_montalcini
 [root@VM-16-9-centos /]# docker exec -it b1e7e7913fbb /bin/bash
 [root@b1e7e7913fbb /]# ls
 bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
 [root@b1e7e7913fbb /]# ps -ef
 UID        PID  PPID  C STIME TTY          TIME CMD
 root         1     0  0 09:03 pts/0    00:00:00 /bin/bash
 root        19     0  0 09:25 pts/1    00:00:00 /bin/bash
 root        33    19  0 09:30 pts/1    00:00:00 ps -ef
 ​
 #方式二:
 docker attach 容器id              #进入容器证字啊执行的终端,不会启动新的进程
  #测试
 [root@VM-16-9-centos /]# docker attach b1e7e7913fbb
 ​

从容器内拷贝文件到主机上

 docker cp 容器id:容器内路径  目的主机路径

小结

 

Docker安装Nginx

 #1.搜索镜像
 [root@VM-16-9-centos /]# docker search nginx
 NAME   DESCRIPTION                  STARS       OFFICIAL            AUTOMATED
 nginx    Official build of Nginx.    13938        [OK]
 ​
 #2.拉取镜像
 [root@VM-16-9-centos /]# docker pull nginx
 Using default tag: latest
 latest: Pulling from library/nginx
 bb79b6b2107f: Pull complete
 111447d5894d: Pull complete
 a95689b8e6cb: Pull complete
 1a0022e444c2: Pull complete
 32b7488a3833: Pull complete
 Digest: sha256:ed7f815851b5299f616220a63edac69a4cc200e7f536a56e421988da82e44ed8
 Status: Downloaded newer image for nginx:latest
 docker.io/library/nginx:latest
 [root@VM-16-9-centos /]# docker images
 REPOSITORY       TAG            IMAGE ID          CREATED             SIZE
 nginx          latest           f35646e83998      2 weeks ago         133MB
 ​
 #   3.启动镜像
 # -d        后台运行
 # --name    给容器命名
 # -p        宿主机端口,容器内部端口
 [root@VM-16-9-centos /]# docker run -d --name nginx -p 3344:80 nginx
 917b547da222824a064611ee5c46818de854e36f344a9e830f94edcfdd641a1f
 [root@VM-16-9-centos /]# docker ps
 CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                                                 PORTS                  NAMES
 917b547da222        nginx               "/docker-entrypoint.…"   7 seconds ago       Up 6 second                                   s        0.0.0.0:3344->80/tcp   nginx
 ​
 #4.测试安装成功
 [root@VM-16-9-centos /]# curl localhost:3344
 <!DOCTYPE html>
 <html>
 <head>
 <title>Welcome to nginx!</title>
 <style>
     body {
         width: 35em;
         margin: 0 auto;
         font-family: Tahoma, Verdana, Arial, sans-serif;
     }
 </style>
 </head>
 <body>
 <h1>Welcome to nginx!</h1>
 <p>If you see this page, the nginx web server is successfully installed and
 working. Further configuration is required.</p>
 ​
 <p>For online documentation and support please refer to
 <a href="http://nginx.org/">nginx.org</a>.<br/>
 Commercial support is available at
 <a href="http://nginx.com/">nginx.com</a>.</p>
 ​
 <p><em>Thank you for using nginx.</em></p>
 </body>
 </html>

在linux系统找某个文件命令: whereis 文件名

tomcat 安装

 # 官方的使用     (该方法一般是用来测试,用完自动删除)
 docker run -it --rm tomcat:9.0
 #1.拉取tomcat镜像
 [root@VM-16-9-centos /]# docker pull tomcat
 ​
 #2.运行tomcat镜像,指定端口
 [root@VM-16-9-centos /]# docker run -d --name tomcat -p 808:8080 tomcat
 ​
 #3.查看运行tomcat的containerid
 [root@VM-16-9-centos /]# docker ps
 ​
 #4.进入tomcat中
 [root@VM-16-9-centos /]# docker exec -it 52798a90b7c3 /bin/bash
 ​
 ​
 #5.文件复制
 root@52798a90b7c3:/usr/local/tomcat#  cp -r webapps.dist/* webapps

部署es+kibana

 #   官网启动命令  
 #   --net somenetwork   网络配置
 docker run -d --name elasticsearch --net somenetwork -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:tag
 docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:tag
 #测试连接
 [root@VM-16-9-centos ~]# curl localhost:9200
 {
   "name" : "c8a274db698a",
   "cluster_name" : "docker-cluster",
   "cluster_uuid" : "Oqh5Ta54RK-MaKkEMpDh9A",
   "version" : {
     "number" : "7.9.3",
     "build_flavor" : "default",
     "build_type" : "docker",
     "build_hash" : "c4138e51121ef06a6404866cddc601906fe5c868",
     "build_date" : "2020-10-16T10:36:16.141335Z",
     "build_snapshot" : false,
     "lucene_version" : "8.6.2",
     "minimum_wire_compatibility_version" : "6.8.0",
     "minimum_index_compatibility_version" : "6.0.0-beta1"
   },
   "tagline" : "You Know, for Search"
 }
 ​
 #查看服务器的状态
 docker stats
 #测试
 CONTAINER ID        NAME                CPU %               MEM USAGE / LIMIT     MEM %               NET I/O             BLOCK I/O           PIDS
 c8a274db698a        elasticsearch       0.27%               1.241GiB / 1.796GiB   69.14%              1.29kB / 1.04kB     160MB / 1.24MB      4
 #修改配置文件 -e 环境配置修改,启动查看内存消耗
 docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xmx512m" elasticsearch:7.9.3

 

 

可视化

  • portainer (先用这个)

     docker run -d -p 8088:9000 \
     --restart=always -v /var/run/docker.sock:/var/run/docker.sock --privileged=true portainer/portainer
  • Rancher(CI/CD再用)

 

什么是portanier

Docker图形化界面管理工具!提供一个后台面板供我们操作!

 docker run -d -p 8088:9000 \
 --restart=always -v /var/run/docker.sock:/var/run/docker.sock --privileged=true portainer/portainer
 #测试,访问 http:81.69.251.9:8088

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值