Docker学习

news2025/7/8 11:40:01

Docker学习

  • Docker概述

  • Docker安装

  • Docker命令

  • Docker镜像

  • Docker的数据卷

  • DockerFile

  • Docker网络原理

  • IDEA整合Docker

  • 集群-Docker Compose

  • Docker Swarm

  • CI\CD jenkins

Docker概述

安装教程:(https://docs.docker.com/engine/install/centos/)

文档(十分详细):(https://docs.docker.com/)

仓库地址:(https://hub.docker.com/signup)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Vs02pBk1-1668560795178)(D:\file\file\Docker学习\images\image-20210803141033502.png)]

Docker的出现。

一款产品有两个环境:开发和上线

发布以一个项目(jar+(redis,mysql,jdk,es,hadoop)),项目不能带上环境打包。环境配置麻烦,不能跨平台。

开发打包部署上线,一套流程做完。

Java —jar(环境)—打包项目带上环境(镜像)—(docker仓库:商店)—下载我们发布的镜像,直接运行即可

Docker给以上的问题提出了解决方案!

Docker通过隔离机制,隔离不同的应用,可以将服务器利用到极致!

docker历史(容器技术)

1.受欢迎的原因:十分轻巧

在容器技术出现之前都是使用虚拟机技术

虚拟机:使用一个软件,通过这个软件可以虚拟出来一台或者多台电脑。

docker容器技术,也是一种虚拟化技术。

docker能做什么?

虚拟机技术的缺点:
  1. 资源占用多
  2. 冗余步骤多
  3. 启动很慢
容器化技术:

容器化技术不是模拟的一个完整的操作系统

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LtjJtSWo-1668560795179)(D:\file\file\Docker学习\images\image-20210803144200692.png)]

比较Docker和虚拟机的不同:

  • 传统的虚拟机,虚拟出一条硬件,运行一个完整的操作系统,然后在这个操作者系统上安装和运行软件
  • 容器内的应用直接运行在宿主机上,容器时没有自己的内核的,也没有虚拟我们的硬件,所以轻便。
  • 每个容器之间时隔离的,每个容器内都有一个自己的文件系统,互不影响。
devops(开发,运维)

应用更快的交付和部署

更快捷的审计和扩缩容

更简单的系统运维

更高效的计算资源利用

Docker时内核级别的虚拟化,可以在一个物理机上运行很多的容器实例,服务器的性能可以被压榨到极致!

Docker安装

Docker组成:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sg8P5yd7-1668560795179)(D:\file\file\Docker学习\images\image-20210803144810955.png)]

镜像:

一个docker镜像好比一个模板,可以通过这个模板来创建容器服务,tomcat镜像===>run===>tomcat01容器(提供服务器)

通过这个镜像看可以创建多个容器(最终服务运行或者运行就是在容器中的)。

仓库:

就是存放镜像的地方。仓库分为共有仓库和私有仓库。DockerHub(默认时国外的)

阿里云。。。都有容器容器服务(可以配置镜像加速!)

容器:

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

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

目前就可以把这个容器理解为就是一个建议的Linux系统

安装

1.环境准备:

  • 需要会Linux基础
  • CentOs
  • 使用Xshell连接远程服务器进行操作

2.环境查看

系统内核:

[root@iZ2zehsabv9z6btgwpsyhgZ ~]# uname -r
3.10.0-957.21.3.el7.x86_64

系统版本:

[root@iZ2zehsabv9z6btgwpsyhgZ ~]# 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”

安装:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tVI26y9U-1668560795179)(D:\file\file\Docker学习\images\image-20210803151558979.png)]

步骤:

#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软件包的索引
yum makecache fast
#5.	安装docker引擎-docker-ce是社区,ee是企业版
yum install docker-ce docker-ce-cli containerd.io
#6.启动docker
systemctl start docker
#7查看是否安装成功
docker version
#8.测试hello-world
docker run hello-world
#9.查看dockers下载的holle world镜像
docker images
#[root@iZ2zehsabv9z6btgwpsyhgZ ~]# docker images
#REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
#redis         latest    aa4d65e670d6   10 days ago    105MB
#hello-world   latest    d1165f221234   5 months ago   13.3kB

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-giPlXPqn-1668560795180)(D:\file\file\Docker学习\images\image-20210803160327084.png)]

了解:
#1.卸载docker依赖
yum remove docker-ce docker-ce-cli contain.io 
#2.卸载docker环境资源
 rm -rf /var/lib/docker
#/var/lib/docker 的docker默认资源路径

阿里云镜像加速配置:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uMI9657W-1668560795180)(D:\file\file\Docker学习\images\image-20210803162924480.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-azbWQ8Ih-1668560795181)(D:\file\file\Docker学习\images\image-20210803162825378.png)]

配置使用:4步

sudo mkdir -p /etc/docker

sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://2qs6lhsp.mirror.aliyuncs.com"]
}
EOF

sudo systemctl daemon-reload

sudo systemctl restart docker

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pQye22jY-1668560795181)(D:\file\file\Docker学习\images\image-20210803163549089.png)]

底层原理

Docker是怎么工作的?

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

Docker Server接受到Docker-client的指令,就会执行这个命令

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DZ4fyR8G-1668560795181)(D:\file\file\Docker学习\images\image-20210803163952459.png)]

Docker什么比vm快?

1.Docker有着比虚拟机更少的抽象层

2.docker利用的时宿主机的内核,vm需要的是Guest OS,分钟级别的启动,而docker是利用宿主机的操作系统,省略了这个复杂的过程,新建容器的过程是秒级的

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1dbm6tcX-1668560795182)(D:\file\file\Docker学习\images\image-20210803164528277.png)]

Docker常用命令

帮助命令

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

帮助文档地址:(https://docs.docker.com/reference/)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iPtukFMC-1668560795182)(D:\file\file\Docker学习\images\image-20210803165917261.png)]

镜像命令

  1. docker images
[root@iZ2zehsabv9z6btgwpsyhgZ ~]# docker images
REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
redis         latest    aa4d65e670d6   10 days ago    105MB
hello-world   latest    d1165f221234   5 months ago   13.3kB

#解释
REPOSITORY:镜像的仓库源
TAG:镜像的标签
IMAGE ID:镜像的id
CREATED:镜像的创建时间
SIZE:镜像的大小
#常用可选项
 -a, --all             #列出所有镜像
 -q, --quiet          #只显示镜像的id

2.docker search #搜索镜像的命令,和在dockerHub网页上搜索是一样的。
如: docker search mysql

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0kFnEBzA-1668560795182)(D:\file\file\Docker学习\images\image-20210803171038304.png)]

#可选项
-f, --filter filter   #过滤操作
#如:--filter=STARS=3000 这个搜索出来的镜像就是stars大于3000的
#[root@iZ2zehsabv9z6btgwpsyhgZ ~]# docker search mysql --filter=STARS=3000
NAME      DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
mysql     MySQL is a widely used, open-source relation…   11205     [OK]       
mariadb   MariaDB Server is a high performing open sou…   4259      [OK]  

3.docker pull 下载镜像

#docker pull 镜像名[:tag](指定版本,不然下载的都是最新版)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FCTmnOSQ-1668560795183)(D:\file\file\Docker学习\images\image-20210803172451929.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bJGVlkIO-1668560795183)(D:\file\file\Docker学习\images\image-20210803172530690.png)]

docker rmi 删除镜像

#删除指定镜像
[root@iZ2zehsabv9z6btgwpsyhgZ ~]# docker rmi -f 镜像id1
[root@iZ2zehsabv9z6btgwpsyhgZ ~]# docker rmi -f c60d96bd2b77
#批量删除镜像多个镜像 
[root@iZ2zehsabv9z6btgwpsyhgZ ~]# docker rmi -f 镜像id1 镜像id2  镜像id3 
[root@iZ2zehsabv9z6btgwpsyhgZ ~]# docker rmi -f $(docker images -aq) #删除所有镜像

容器命令

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

docker pull centos

新建容器并启动

1.docker run[可选参数] 镜像名

#参数说明
--name="Name" 容器名字 tomcat01 tomcat02,用来区分容器
-d            后台方式运行
-it           使用交互方式运行,进入容器查看内容
-p            指定容器的端口 
  -p ip:主机端口:容器端口
  -p 主机端口:容器端口(常用)
  -p 容器端口
  容器端口
 -P   随机指定端口
#启动并进入容器
[root@rookieWRL ~]# docker run -it centos /bin/bash #“rookieWRL”是我的服务器主机名
[root@7408b6254dde /]#  #“7408b6254dde”是容器id
检验:
[root@rookieWRL ~]# docker run -it centos /bin/bash #启动容器
[root@3fcaef4607bc /]# [root@rookieWRL ~]# docker ps   #查看当前在运行的容器(docker ps)需要切换到当前主机环境中才可以执行 -> 容器不停止退出(按ctrl+P+Q快捷键) 
CONTAINER ID   IMAGE     COMMAND       CREATED          STATUS          PORTS     NAMES
3fcaef4607bc   centos    "/bin/bash"   14 seconds ago   Up 13 seconds             inspiring_satoshi

[root@rookieWRL ~]# docker run -it centos /bin/bash
[root@ca140cb4cb87 /]# ls #查看容器内的centos 内部的centos和外部的没有任何关系,并且内部的centos有很多命令都不是完善的!
bin  etc   lib	  lost+found  mnt  proc  run   srv  tmp  var
dev  home  lib64  media       opt  root  sbin  sys  usr

2.exit #退出容器到主机

3.docker ps #查看当前在运行的容器

-a #列出当前正在运行的容器+带出历史运行过的容器
-n=? #显示最近创建的容器
-q #只显示容器的id

4.退出容器

1.exit #直接退出容器
2.ctrl+P+Q快捷键 #容器不停止退出

5.删除容器

docker rm #删除删除一个或多个指定的容器 不能删除一个在运行的容器
docker rm -f #删通过 SIGKILL 信号强制删除一个运行中的容器。
docker rm $(docker ps -a -q) #删除所有已经停止的容器
docker ps -a -q|xargs docker rm #删除所有的容器
docker container prune #清理所有处于终止状态的容器

6.启动和停止容器

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

其他常用命令

1.后台启动容器

# 命令 docker run -d 镜像名
docker run  -d centos
**********
#问题:docker ps 发现centos 停止了
#常见的坑:docker容器使用后台运行,就必须要一个前要运行,docker 发现没有应用就会自动停止
#nignx,容器启动后,发现自己没有提供服务,就会立刻停止,就是没有程序了

2.查看日志命令

命令:docker logs -tf --tail 容器id

#自己写一段shell脚本
docker run -d centos /bin.sh -c "while true;do echo rookieWRL;sleep 1;done"

#显示日志
-tf
--tail number(要显示的日志条数)

docker logs -tf --tail 10([日志条数]) 容器id

3.查看容器中的进程信息ps

命令:dockers top 容器id
[root@rookieWRL ~]# docker top 6d3671f6e27b
UID                 PID                 PPID                C                   STIME               TTY     
root                8099                8081                0                   17:06               pts/0   

4.查看镜像的元数据

命令:docker inspect 容器id
[root@rookieWRL ~]# docker inspect 6d3671f6e27
[
    {
        "Id": "6d3671f6e27b9f7725763d51dc081293de63ca834ee37ceaa83f354b01b87c8e",
        "Created": "2021-08-04T09:06:51.976114719Z",
        "Path": "/bin/bash",
        "Args": [],
        "State": {
            "Status": "running",
            "Running": true,
            "Paused": false,
            "Restarting": false,
            "OOMKilled": false,
            "Dead": false,
            "Pid": 8099,
            "ExitCode": 0,
            "Error": "",
            "StartedAt": "2021-08-04T09:06:52.390489038Z",
            "FinishedAt": "0001-01-01T00:00:00Z"
        },
        "Image": "sha256:300e315adb2f96afe5f0b2780b87f28ae95231fe3bdd1e16b9ba606307728f55",
        "ResolvConfPath": "/var/lib/docker/containers/6d3671f6e27b9f7725763d51dc081293de63ca834ee37ceaa83f354b01b87c8e/resolv.conf",
        "HostnamePath": "/var/lib/docker/containers/6d3671f6e27b9f7725763d51dc081293de63ca834ee37ceaa83f354b01b87c8e/hostname",
        "HostsPath": "/var/lib/docker/containers/6d3671f6e27b9f7725763d51dc081293de63ca834ee37ceaa83f354b01b87c8e/hosts",
        "LogPath": "/var/lib/docker/containers/6d3671f6e27b9f7725763d51dc081293de63ca834ee37ceaa83f354b01b87c8e/6d3671f6e27b9f7725763d51dc081293de63ca834ee37ceaa83f354b01b87c8e-json.log",
        "Name": "/brave_haslett",
        "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,
            "CgroupnsMode": "host",
            "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/8de9eeed955194496313f97bb0d54ba0c13f9787b8fae4e8ba1a07be03c014da-init/diff:/var/lib/docker/overlay2/e4b54ef4dd05eda469391646d67d0fbd65d2c38fc0bb46821737fd238ed66345/diff",
                "MergedDir": "/var/lib/docker/overlay2/8de9eeed955194496313f97bb0d54ba0c13f9787b8fae4e8ba1a07be03c014da/merged",
                "UpperDir": "/var/lib/docker/overlay2/8de9eeed955194496313f97bb0d54ba0c13f9787b8fae4e8ba1a07be03c014da/diff",
                "WorkDir": "/var/lib/docker/overlay2/8de9eeed955194496313f97bb0d54ba0c13f9787b8fae4e8ba1a07be03c014da/work"
            },
            "Name": "overlay2"
        },
        "Mounts": [],
        "Config": {
            "Hostname": "6d3671f6e27b",
            "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": "20201204",
                "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": "5e0af768a5e4a8493eb2dc9c889592eb89dea09ad3447ce0cb6528f5731ab39e",
            "HairpinMode": false,
            "LinkLocalIPv6Address": "",
            "LinkLocalIPv6PrefixLen": 0,
            "Ports": {},
            "SandboxKey": "/var/run/docker/netns/5e0af768a5e4",
            "SecondaryIPAddresses": null,
            "SecondaryIPv6Addresses": null,
            "EndpointID": "622da14a19c4f78294f0c7cb08870985bec3694ec56bdcdb1e0f63b4e4f0da27",
            "Gateway": "172.17.0.1",
            "GlobalIPv6Address": "",
            "GlobalIPv6PrefixLen": 0,
            "IPAddress": "172.17.0.3",
            "IPPrefixLen": 16,
            "IPv6Gateway": "",
            "MacAddress": "02:42:ac:11:00:03",
            "Networks": {
                "bridge": {
                    "IPAMConfig": null,
                    "Links": null,
                    "Aliases": null,
                    "NetworkID": "52610b926c5e1219293b38a25dba6e1fe3ceb26a0b26b6318f091a1e5617a171",
                    "EndpointID": "622da14a19c4f78294f0c7cb08870985bec3694ec56bdcdb1e0f63b4e4f0da27",
                    "Gateway": "172.17.0.1",
                    "IPAddress": "172.17.0.3",
                    "IPPrefixLen": 16,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "MacAddress": "02:42:ac:11:00:03",
                    "DriverOpts": null
                }
            }
        }
    }
]

5.进入当前正在运行的容器

#通常我们的容器都是i使用后台方式运行的,需要进入容器,修改一些配置
#命令
docker exec -it 容器id shell命令

[root@rookieWRL ~]# docker ps
CONTAINER ID   IMAGE     COMMAND       CREATED          STATUS          PORTS     NAMES
6d3671f6e27b   centos    "/bin/bash"   16 minutes ago   Up 16 minutes             brave_haslett
3fcaef4607bc   centos    "/bin/bash"   2 hours ago      Up 2 hours                inspiring_satoshi
[root@rookieWRL ~]# docker exec -it 6d3671f6e27b /bin/bash
[root@6d3671f6e27b /]# ls
bin  etc   lib	  lost+found  mnt  proc  run   srv  tmp  var
dev  home  lib64  media       opt  root  sbin  sys  usr
[root@6d3671f6e27b /]# ps -ef
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 09:06 pts/0    00:00:00 /bin/bash
root        16     0  0 09:23 pts/1    00:00:00 /bin/bash
root        31    16  0 09:24 pts/1    00:00:00 ps -ef
#方式二
命令:docker attach 容器id
正在执行当前代码

#docker exec 进入容器后并开启一个新的终端,可以在里面操作(常用)
#docker attach 进入容器正在执行的终端,不会启动新的进程

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

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

[root@rookieWRL ~]# docker ps
CONTAINER ID   IMAGE     COMMAND       CREATED          STATUS          PORTS     NAMES
6d3671f6e27b   centos    "/bin/bash"   21 minutes ago   Up 21 minutes             brave_haslett
3fcaef4607bc   centos    "/bin/bash"   2 hours ago      Up 2 hours                inspiring_satoshi
[root@rookieWRL ~]# docker attch 6d3671f6e27b 
docker: 'attch' is not a docker command.
See 'docker --help'
[root@rookieWRL ~]# docker attach 6d3671f6e27b 
[root@6d3671f6e27b /]# cd /home
[root@6d3671f6e27b home]# touch cpfile.txt
[root@6d3671f6e27b home]# ls
cpfile.txt
[root@6d3671f6e27b home]# exit                        
exit
[root@rookieWRL ~]# cd /home
[root@rookieWRL home]# ls
redis  www
[root@rookieWRL home]# docker ps 6d3671f6e27b:/home/cpfile.txt/home
"docker ps" accepts no arguments.
See 'docker ps --help'.

Usage:  docker ps [OPTIONS]

List containers
[root@rookieWRL home]# docker cp 6d3671f6e27b:/home/cpfile.txt/home
"docker cp" requires exactly 2 arguments.
See 'docker cp --help'.

Usage:  docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
	docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH

Copy files/folders between a container and the local filesystem
[root@rookieWRL home]# docker cp 6d3671f6e27b:/home/cpfile.txt /home
[root@rookieWRL home]# ls
cpfile.txt  redis  www

#拷贝是一个手动过程,未来我们使用-v卷的技术可以实现,自动同步

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pAjacjxH-1668560795184)(D:\file\file\Docker学习\images\image-20210804174133045.png)]

7.部署nginx

#1.搜索镜像:
[root@rookieWRL ~]# docker search nginx
NAME                              DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
nginx                             Official build of Nginx.                        15262     [OK]       
jwilder/nginx-proxy               Automated Nginx reverse proxy for docker con…   2054                 [OK]
richarvey/nginx-php-fpm           Container running Nginx + PHP-FPM capable of…   815                  [OK]
jc21/nginx-proxy-manager          Docker container for managing Nginx proxy ho…   228                  
linuxserver/nginx                 An Nginx container, brought to you by LinuxS…   150                  
tiangolo/nginx-rtmp               Docker image with Nginx using the nginx-rtmp…   137                  [OK]
jlesage/nginx-proxy-manager       Docker container for Nginx Proxy Manager        127                  [OK]
alfg/nginx-rtmp                   NGINX, nginx-rtmp-module and FFmpeg from sou…   103                  [OK]
jasonrivers/nginx-rtmp            Docker images to host RTMP streams using NGI…   92                   [OK]
nginxdemos/hello                  NGINX webserver that serves a simple page co…   70                   [OK]
privatebin/nginx-fpm-alpine       PrivateBin running on an Nginx, php-fpm & Al…   56                   [OK]
nginx/nginx-ingress               NGINX and  NGINX Plus Ingress Controllers fo…   55                   
nginxinc/nginx-unprivileged       Unprivileged NGINX Dockerfiles                  46                   
staticfloat/nginx-certbot         Opinionated setup for automatic TLS certs lo…   24                   [OK]
schmunk42/nginx-redirect          A very simple container to redirect HTTP tra…   19                   [OK]
nginx/nginx-prometheus-exporter   NGINX Prometheus Exporter for NGINX and NGIN…   19                   
centos/nginx-112-centos7          Platform for running nginx 1.12 or building …   15                   
centos/nginx-18-centos7           Platform for running nginx 1.8 or building n…   13                   
raulr/nginx-wordpress             Nginx front-end for the official wordpress:f…   13                   [OK]
bitwarden/nginx                   The Bitwarden nginx web server acting as a r…   11                   
flashspys/nginx-static            Super Lightweight Nginx Image                   10                   [OK]
mailu/nginx                       Mailu nginx frontend                            9                    [OK]
sophos/nginx-vts-exporter         Simple server that scrapes Nginx vts stats a…   7                    [OK]
ansibleplaybookbundle/nginx-apb   An APB to deploy NGINX                          2                    [OK]
wodby/nginx                       Generic nginx                                   1                    [OK]
#2.下载镜像:
[root@rookieWRL ~]# docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
33847f680f63: Already exists 
dbb907d5159d: Pull complete 
8a268f30c42a: Pull complete 
b10cf527a02d: Pull complete 
c90b090c213b: Pull complete 
1f41b2f2bf94: Pull complete 
Digest: sha256:8f335768880da6baf72b70c701002b45f4932acae8d574dedfddaf967fc3ac90
Status: Downloaded newer image for nginx:latest
docker.io/library/nginx:latest
#3.查看镜像是否下载成功
[root@rookieWRL ~]# docker images
REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
redis         latest    aa4d65e670d6   12 days ago    105MB
nginx         latest    08b152afcfae   13 days ago    133MB
hello-world   latest    d1165f221234   5 months ago   13.3kB
centos        latest    300e315adb2f   7 months ago   209MB



#4.运行容器
-d 后台运行
--name 给容器命名
-p 宿主机端口,容器内端口映射
[root@rookieWRL ~]# docker run -d --name nginx01 -p 3344:80 nginx
4f5f39163906c9aeb09c8c829cb6f3a3af1ba874bc95830b6f1a2f1a4470e9c4
#5.查看正在运行的容器
[root@rookieWRL ~]# docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED         STATUS         PORTS                  NAMES
4f5f39163906   nginx     "/docker-entrypoint.…"   8 seconds ago   Up 7 seconds   0.0.0.0:3344->80/tcp   nginx01
3fcaef4607bc   centos    "/bin/bash"              6 hours ago     Up 6 hours                            inspiring_satoshi
#6测试接口-访问3344端口-curl命令可以直接在终端进行测试
[root@rookieWRL ~]# curl localhost:3344

#进入容器
[root@rookieWRL ~]# docker exec -it nginx01 /bin/bash
#查看nginx相关文件的位置
root@4f5f39163906:/# whereis nginx
nginx: /usr/sbin/nginx /usr/lib/nginx /etc/nginx /usr/share/nginx
#查看nignx相关的配置文件
root@4f5f39163906:/# cd /etc/nginx
root@4f5f39163906:/etc/nginx# ls
conf.d		mime.types  nginx.conf	 uwsgi_params
fastcgi_params	modules     scgi_params


端口暴露的概念

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3bHNFJXB-1668560795184)(D:\file\file\Docker学习\images\image-20210804215628750.png)]

怎么在容器外部修改容器内的nginx配置文件?–数据卷的技术

8.部署tomcat

#官方启动方法:我们之前的启动都是是后台的,用完停止容器之后,容器还是可以查到的,docker run -it --rm 一般用来测试,用完及删除,用完这个容器就会删除这个容器
$ docker run -it --rm tomcat:9.0

#下载启动
docker pull tomcat


#启动tomcat
[root@rookieWRL ~]# docker run -d -p 3355:8080 --name tomcat01 tomcat
2e9abd39f97011c61310c19e2854db862c1b6ed44c43f30af673c69cb47496fb

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NGv8kC2I-1668560795185)(D:\file\file\Docker学习\images\image-20210807181814870.png)]

#测试外部主机访问该tomcat
问题:没有网站,所以找不到页面

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-p7U3f0sy-1668560795185)(D:\file\file\Docker学习\images\image-20210807182358109.png)]




#进入容器
[root@rookieWRL ~]# docker exec -it tomcat01 /bin/bash
root@2e9abd39f970:/usr/local/tomcat# ls
BUILDING.txt	 NOTICE		RUNNING.txt  lib	     temp	   work
CONTRIBUTING.md  README.md	bin	     logs	     webapps
LICENSE		 RELEASE-NOTES	conf	     native-jni-lib  webapps.dist
root@2e9abd39f970:/usr/local/tomcat# ls -al
total 176
drwxr-xr-x 1 root root  4096 Jul 23 09:46 .
drwxr-xr-x 1 root root  4096 Aug  7 10:15 ..
-rw-r--r-- 1 root root 18949 Jun 28 08:46 BUILDING.txt
-rw-r--r-- 1 root root  6210 Jun 28 08:46 CONTRIBUTING.md
-rw-r--r-- 1 root root 57092 Jun 28 08:46 LICENSE
-rw-r--r-- 1 root root  2333 Jun 28 08:46 NOTICE
-rw-r--r-- 1 root root  3372 Jun 28 08:46 README.md
-rw-r--r-- 1 root root  6898 Jun 28 08:46 RELEASE-NOTES
-rw-r--r-- 1 root root 16507 Jun 28 08:46 RUNNING.txt
drwxr-xr-x 2 root root  4096 Jul 23 09:46 bin
drwxr-xr-x 1 root root  4096 Aug  7 10:15 conf
drwxr-xr-x 2 root root  4096 Jul 23 09:46 lib
drwxrwxrwx 1 root root  4096 Aug  7 10:15 logs
drwxr-xr-x 2 root root  4096 Jul 23 09:46 native-jni-lib
drwxrwxrwx 2 root root  4096 Jul 23 09:46 temp
drwxr-xr-x 2 root root  4096 Jul 23 09:46 webapps
drwxr-xr-x 7 root root  4096 Jun 28 08:46 webapps.dist
drwxrwxrwx 2 root root  4096 Jun 28 08:46 work
root@2e9abd39f970:/usr/local/tomcat# cd webapps
root@2e9abd39f970:/usr/local/tomcat/webapps# ls
root@2e9abd39f970:/usr/local/tomcat/webapps# 

#发现问题:发现这个容器是被阉割过的
#1.Linux命令少了
#2.没有webapps。阿里云的原因,默认是最小的镜像,所以不必要的都去除了
#保证了最小的可运行环境
#进入webapps.dist文件夹,这个是它的输出目录 ,然后把里面的内容拷贝到webapps里面
root@2e9abd39f970:/usr/local/tomcat# cd webapps.dist
root@2e9abd39f970:/usr/local/tomcat/webapps.dist# ls
ROOT  docs  examples  host-manager  manager
root@2e9abd39f970:/usr/local/tomcat/webapps.dist# cd ..
root@2e9abd39f970:/usr/local/tomcat# cp webapps.dist/* webapps
cp: -r not specified; omitting directory 'webapps.dist/ROOT'
cp: -r not specified; omitting directory 'webapps.dist/docs'
cp: -r not specified; omitting directory 'webapps.dist/examples'
cp: -r not specified; omitting directory 'webapps.dist/host-manager'
cp: -r not specified; omitting directory 'webapps.dist/manager'
root@2e9abd39f970:/usr/local/tomcat# cd webapps
root@2e9abd39f970:/usr/local/tomcat/webapps# ls
root@2e9abd39f970:/usr/local/tomcat/webapps# cd ..
root@2e9abd39f970:/usr/local/tomcat# cp -r webapps.dist/* webapps
root@2e9abd39f970:/usr/local/tomcat# cd webapps
root@2e9abd39f970:/usr/local/tomcat/webapps# ls
ROOT  docs  examples  host-manager  manager
#拷贝过来之后就可以访问到了

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-32iSMZwb-1668560795185)(D:\file\file\Docker学习\images\image-20210807190403529.png)]

怎么在容器外部提供一个映射路径,webapps,我们在外部放置项目,就自动同步到内部就好了?

9.怎么部署es+kibana

#es暴露的接口很多!
#es十分耗内存
#es的一般数据需要放置到安全目录!挂载

#--net somenetwork 网络配置
#下载启动 elasticsearch
docker run -d --name elasticsearch  -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.6.2

#启动了Linux就会卡 
docker stats ->查看cpu状态
#es十分耗内存
#测试es是否安装成功
[root@rookieWRL ~]# curl localhost:9200
{
  "name" : "dc59c39551d1",
  "cluster_name" : "docker-cluster",
  "cluster_uuid" : "pS9kjEM9T1aWYkED6SZy_Q",
  "version" : {
    "number" : "7.6.2",
    "build_flavor" : "default",
    "build_type" : "docker",
    "build_hash" : "ef48eb35cf30adf4db14086e8aabd07ef6fb113f",
    "build_date" : "2020-03-26T06:34:37.794943Z",
    "build_snapshot" : false,
    "lucene_version" : "8.4.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qJ3tJXNz-1668560795186)(D:\file\file\Docker学习\images\image-20210807225645025.png)]

#赶紧关闭es,增加内存的限制 ,修改配置文件 -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.6.2

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wJHwXJJa-1668560795186)(D:\file\file\Docker学习\images\image-20210807232920126.png)]

错误1:


docker: Error response from daemon: Conflict. The container name "/elasticsearch" is already in use by container "dc59c39551d11c7a71e862347b8d17841452139f7d61f53051ada086d258e129". You have to remove (or rename) that container to be able to reuse that name.
See 'docker run --help'.


解决:表示这个名为“elasticsearch”的容器已经存在,我们取一个别的名字即可

错误2:在想要修改配置并运行es时出现以下错误:

[root@rookieWRL ~]# docker run -d --name elasticsearch03  -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xmx512m" elasticsearch:7.6.2
82744712a58bd2d41a2ac14ec7b171f2d6f2d4b8a8b68c492800d490d922942e
docker: Error response from daemon: driver failed programming external connectivity on endpoint elasticsearch03 (79dae940d2e994c7d789b8789fb0b6c1b71d746bdc65c4e0bde88363b0f3004d): Bind for 0.0.0.0:9300 failed: port is already allocated.

解决:因该是有es容器占用了9300端口,我把正在运行的es容器停掉重新运行就好了

#重新配置后测试成功
[root@rookieWRL ~]# curl localhost:9200
{
  "name" : "cded944be5f7",
  "cluster_name" : "docker-cluster",
  "cluster_uuid" : "jCQIP0nGTKq_hfkxDVP73A",
  "version" : {
    "number" : "7.6.2",
    "build_flavor" : "default",
    "build_type" : "docker",
    "build_hash" : "ef48eb35cf30adf4db14086e8aabd07ef6fb113f",
    "build_date" : "2020-03-26T06:34:37.794943Z",
    "build_snapshot" : false,
    "lucene_version" : "8.4.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

使用kibana来连接es?

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SLPq6Hyr-1668560795186)(D:\file\file\Docker学习\images\image-20210807233435459.png)]

可视化—portainer

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再用)

什么是portainer?

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

docker run -d -p 8088:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock --privileged=true portainer/portainer
  • 参数说明:
    • –restart=always 启动方式
    • -v /var/run/docker.sock:/var/run/docker.sock 挂载
    • –privileged=true 权限

访问测试:

外网:http://39.105.163.53:8088/

注册页面:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RBG3rk9T-1668560795187)(D:\file\file\Docker学习\images\image-20210808000704989.png)]

注册之后:

local

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VVchwpDA-1668560795187)(D:\file\file\Docker学习\images\image-20210808000835100.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ocuLsqan-1668560795187)(D:\file\file\Docker学习\images\image-20210808001012592.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qpGu0hVf-1668560795188)(D:\file\file\Docker学习\images\image-20210808001135965.png)]

平时不会使用这个面板

Docker镜像讲解

镜像是什么?

镜像是一种轻量级,可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含运行某个软件所需的所有内容,包括代码、运行时、库、环境变量和配置文件。

所有应用直接打包docker镜像,就可以直接跑起来!

如何得到镜像:

1.从远程下载

2.朋友拷贝过来

3.自己制作一个镜像dockerFile

Docker镜像加载原理

UnionFS(联合文件系统)

UnionFs(联合文件系统):Union文件系统(UnionFS)是一种分层、轻量级并且高性能的文件系统。它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同的目录挂载到同一个虚拟文件系统下(unite serveral directories into a single virtual filesystem).Union文件系统是docker 镜像的基础,镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。

特性:一次同时加载多个文件系统,但从外面看起来,只能看到一个文件系统,联合加载会把各层文件系统叠加起来,这样最终的文件系统会包含所有底层的文件和目录

Docker镜像加载原理

docker的镜像实际上由一层一层的文件系统组成,这种层级的文件系统UnionFS.

bootfs(boot file system)主要包含bootloader和kernel,bootloader主要引导加载kernel,Linux刚启动的时候会加载bootfs文件系统,在docker镜像的最底层就是bootfs。这一层与我们典型的Linux和Unix系统是一样的,包含boot加载器和内核。当boot加载完成之后整个内核都在内存中了,此时内存的使用权已由bootfs转交给内核,此时系统也会卸载bootfs.

rootfs(root file system) ,在bootfs之上,包含的就是典型的Linux系统中的/dev,/proc,/bin,/etc等标准目录和文件,rootfs就是各种不同的操作系统发行版,比如Ubuntu,centos等

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-S6QYDvGt-1668560795188)(D:\file\file\Docker学习\images\image-20210810225603574.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aF0yYBQr-1668560795189)(D:\file\file\Docker学习\images\image-20210810230016540.png)]

平时安装的centos都是好几个G,为什么到docke这里才几百M

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lN3hkkZ6-1668560795189)(D:\file\file\Docker学习\images\image-20210810230415578.png)]

对于一个精简的OS,rootfs很小,只需包含最基本的命令,工具和程序库就可以了,因为最底层直接使用host的kernel,自己只需要提供rootfs就可以了,由此可见对于不同的Linux发行版本,bootfs基本是一致的,rootfs会有差别,因此不同的发行版本可以公用bootfs.

分层理解

分层的镜像

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QnL3yhdO-1668560795189)(D:\file\file\Docker学习\images\image-20210810231219525.png)]

思考?为什么docker镜像要采用这种分层的结构呢?

最大的好处莫过于是资源共享了!比如有多个镜像都从相同的Base镜像构建而来,那么宿主机只需要在磁盘上保留一份base镜像,同时内存中也只需要加载一份base镜像,这样就可以为所有容器服务了,而且镜像的每一层都可以被共享。

查看镜像分层的方式可以通过docker imgae inspect命令!

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9wSBEQ5H-1668560795189)(D:\file\file\Docker学习\images\image-20210811203150963.png)]

理解:

所有的docker 镜像都起始于一个基础镜像层,当进行修改或增加新的内容时,就会在当前镜像层之上,创建新的镜像层。举一个简单的例子。例如基于Ubuntu Linux16.04创建一个新的镜像,这就是新镜像的第一层,如果在该镜像中添加python包,就会在基础镜像层之上创建第二个镜像层;如果继续添加一个安全补丁,就会创建第三个镜像层。

该镜像当前已经包含三个镜像层,如下图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-voUqCfNY-1668560795190)(D:\file\file\Docker学习\images\image-20210811230322827.png)]

在添加额外镜像蹭听的同时,镜像始终保持时当前所有镜像的组合,理解这一点十分重要,下图举了一个简单的例子,每个镜像层包含三个文件,二镜像包含了来自两个镜像层的6个文件。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2pBV3fM7-1668560795190)(D:\file\file\Docker学习\images\image-20210811230606650.png)]

上图的镜像层跟之前的略有区别,主要目的是便于展示文件。

下图展示另一个稍微复杂的三层镜像,在外部看来整个镜像只有6个文件,这是因为最上层中的文件7是文件5的一个更新版

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NPg2Quhc-1668560795190)(D:\file\file\Docker学习\images\image-20210811231625771.png)]

这种情况下,上层镜像层中的文件能覆盖了底层镜像层中的文件。这样就使得文件的更新本版作为一新的镜像层添加到镜像当中。Docker通过存储引擎(新版本采用快照机制)的方式实现镜像层堆栈,并保证多镜像层对外展示为统一的文件系统。

Linux上可以用的存储引擎有AUFS,Overlay2,DeviceMapper,Btrfs以及ZFS。顾名思义,每种存储引擎都基于Linux中对应的文件系统或者块设备技术,并且每种存储引擎都有其独有的性能特点。

Docker在windows上仅支持Windows filter一种存储引擎,该引擎基于NTFS文件系统之上是实现了分层和Cow[1]

下图展示 了与系统显示相同的三层镜像,所有镜像层堆叠并合并,对外提供统一的视图。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HmtfU4X0-1668560795191)(D:\file\file\Docker学习\images\image-20210814205352132.png)]

特点:

Docker镜像都是只读的,当容器启动时,一个新的可写层被加载到镜像的顶部!

这一层就是我们通常说的容器层,容器之下都叫镜像层

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kYzA0IND-1668560795191)(D:\file\file\Docker学习\images\image-20210814211039858.png)]

如何提交一个自己的镜像

commit镜像

docker commit 提交容器成为一个新的副本

#命令和git原理类似
docker commit -m="提交的描述信息" -a="作者" 容器id 目标镜像名:[版本]

实战测试:

1.启动一个默认的tomcat

2.发现这个默认的tomcat是 没有webapp应用,镜像的原因,官方的镜像默认,webapps下面是没有文件的

3.我们手动拷贝文件进去

4.将我们操作过的容器通过commit提交为一个镜像,我们以后就是用我们修改过的镜像即可。这就是我们自己的一个修改的镜像

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Svucjze3-1668560795191)(D:\file\file\Docker学习\images\image-20210814224951099.png)]

到这才是入门docker

容器数据卷

什么是容器数据卷

docker 的理念: 将应用和环境打包成一个镜像

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-98iDvutl-1668560795192)(D:\file\file\Docker学习\images\image-20210823164723909.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9a8n5pLs-1668560795192)(D:\file\file\Docker学习\images\image-20210823164734643.png)]

总结一句话:容器的持久化和同步操作!容器间也是可以数据共享的!

使用数据卷

方式一:

直接使用用命令挂载

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-F6K1yYdh-1668560795192)(D:\file\file\Docker学习\images\image-20210823165347049.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oCgTbt1Y-1668560795192)(D:\file\file\Docker学习\images\image-20210823165414548.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Y7xvxmNk-1668560795193)(D:\file\file\Docker学习\images\image-20210823165646196.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KkTae1kR-1668560795193)(D:\file\file\Docker学习\images\image-20210823165920828.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-09ImpwUB-1668560795193)(D:\file\file\Docker学习\images\image-20210823170023586.png)]

实战:安装MySQL

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5xre162u-1668560795193)(D:\file\file\Docker学习\images\image-20210823170701252.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bI6tBC2E-1668560795194)(D:\file\file\Docker学习\images\image-20210823170940586.png)]

具名挂载和匿名挂载

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gUBsek1D-1668560795194)(D:\file\file\Docker学习\images\image-20210823174431937.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zSf0bSvd-1668560795194)(D:\file\file\Docker学习\images\image-20210823174619985.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uDtLMcDN-1668560795194)(D:\file\file\Docker学习\images\image-20210823174925864.png)]

方式二:

初识dockerfile

载镜像生成时就挂载

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-286RQgxe-1668560795195)(D:\file\file\Docker学习\images\image-20210823175723701.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EJubgXzq-1668560795195)(D:\file\file\Docker学习\images\image-20210823180237041.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Iq59yS7s-1668560795195)(D:\file\file\Docker学习\images\image-20210823180423887.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-t4wmC1H2-1668560795196)(D:\file\file\Docker学习\images\image-20210823180436047.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9tGLSYko-1668560795196)(D:\file\file\Docker学习\images\image-20210823180528754.png)]

数据卷容器

多个MySQL同步数据

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wiRHwDEb-1668560795196)(D:\file\file\Docker学习\images\image-20210823180900591.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JcRvEhcv-1668560795196)(D:\file\file\Docker学习\images\image-20210823181022081.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vFQ2uqnw-1668560795197)(D:\file\file\Docker学习\images\image-20210823181155777.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uiXScHg9-1668560795197)(D:\file\file\Docker学习\images\image-20210823181249032.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ik2VAvhl-1668560795197)(D:\file\file\Docker学习\images\image-20210823181432016.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RdNaTp51-1668560795198)(D:\file\file\Docker学习\images\image-20210823181907374.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uUsACxd4-1668560795198)(D:\file\file\Docker学习\images\image-20210823182032626.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bQf9PmLP-1668560795198)(D:\file\file\Docker学习\images\image-20210823182135175.png)]

dokcerFile

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8rTr50Vj-1668560795198)(D:\file\file\Docker学习\images\image-20210823182434696.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5f9lsyvk-1668560795199)(D:\file\file\Docker学习\images\image-20210823182547240.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iYSnhF5z-1668560795200)(D:\file\file\Docker学习\images\image-20210823183050623.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uBT2a6NG-1668560795200)(D:\file\file\Docker学习\images\image-20210823183135246.png)]

dockerFile构建

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3ot6EXGm-1668560795200)(D:\file\file\Docker学习\images\image-20210823183410257.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kbVYlKcr-1668560795200)(D:\file\file\Docker学习\images\image-20210823183635326.png)]

dockerFile命令

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1vB2C3oc-1668560795201)(D:\file\file\Docker学习\images\image-20210823184255390.png)]

镜像构建实战:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fwvAdFZg-1668560795201)(D:\file\file\Docker学习\images\image-20210823184533086.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6RrAN2ff-1668560795201)(D:\file\file\Docker学习\images\image-20210823185352061.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Sghv5FUe-1668560795202)(D:\file\file\Docker学习\images\image-20210823185707054.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-R2d09vKk-1668560795202)(D:\file\file\Docker学习\images\image-20210823185811646.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hcss0KpE-1668560795202)(D:\file\file\Docker学习\images\image-20210823185822214.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tuZ2F2ey-1668560795202)(D:\file\file\Docker学习\images\image-20210823190416972.png)]

CMD和ENTRYPOINT的区别

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7Vm7nnCy-1668560795203)(D:\file\file\Docker学习\images\image-20210823191107549.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FklLXT7K-1668560795203)(D:\file\file\Docker学习\images\image-20210823191333515.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1jpCNn9H-1668560795203)(D:\file\file\Docker学习\images\image-20210823191617155.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-w6jW2gvZ-1668560795204)(D:\file\file\Docker学习\images\image-20210823190949605.png)]

实战制作tomcat镜像

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6b1TdeGv-1668560795204)(D:\file\file\Docker学习\images\image-20210823191814459.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-L2rZxByG-1668560795204)(D:\file\file\Docker学习\images\image-20210823193929964.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fYlCbDLd-1668560795205)(D:\file\file\Docker学习\images\image-20210823202307161.png)]

发布自己的镜像

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EpEV1vkH-1668560795205)(D:\file\file\Docker学习\images\image-20210823231455914.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-X8ycsRky-1668560795205)(D:\file\file\Docker学习\images\image-20210823231526623.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-y1U2Dg8Q-1668560795205)(D:\file\file\Docker学习\images\image-20210823231901305.png)]

发布镜像到阿里云

参考阿里云文档

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rBhP1z2z-1668560795206)(D:\file\file\Docker学习\images\image-20210823232355256.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pDwX2YRm-1668560795206)(D:\file\file\Docker学习\images\image-20210823233328998.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1WYyLZCv-1668560795206)(D:\file\file\Docker学习\images\image-20210823232827066.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-N4nAmlEu-1668560795206)(D:\file\file\Docker学习\images\image-20210823233700088.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PheJOAma-1668560795207)(D:\file\file\Docker学习\images\image-20210823233820562.png)]

docker网络

docker run -p 3306:3306 --name mysql 
-v /data/docker/mysql/conf:/etc/mysql/conf.d 
-e MYSQL_ROOT_PASSWORD=Vv0IBQ5qST 
-d mysql:5.7

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KLAqPZXS-1668560795207)(D:\file\file\Docker学习\images\image-20210823234159104.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7OwFnX7X-1668560795207)(D:\file\file\Docker学习\images\image-20210823234347950.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-F3obpOIq-1668560795208)(D:\file\file\Docker学习\images\image-20210823234717662.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Y5OsVRqy-1668560795208)(D:\file\file\Docker学习\images\image-20210823235042294.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IqLW6YqM-1668560795208)(D:\file\file\Docker学习\images\image-20210823235135293.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZvkAmczg-1668560795208)(D:\file\file\Docker学习\images\image-20210823235323405.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5WxfdkNA-1668560795209)(D:\file\file\Docker学习\images\image-20210823235427669.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HExmGB5P-1668560795209)(D:\file\file\Docker学习\images\image-20210823235718958.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wUbnSLcj-1668560795209)(D:\file\file\Docker学习\images\image-20210823235926549.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5tcEkYJL-1668560795209)(D:\file\file\Docker学习\images\image-20210824000106951.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pyf7i3pL-1668560795210)(D:\file\file\Docker学习\images\image-20210824000238541.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WoiYok05-1668560795210)(D:\file\file\Docker学习\images\image-20210824000809469.png)]

–link

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7GtHIHqt-1668560795210)(D:\file\file\Docker学习\images\image-20210824000426636.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-R3lNMdTa-1668560795210)(D:\file\file\Docker学习\images\image-20210824000830069.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ul3Y0nrE-1668560795211)(D:\file\file\Docker学习\images\image-20210824000903141.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TaNk101o-1668560795211)(D:\file\file\Docker学习\images\image-20210824001222148.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EKDRugAZ-1668560795211)(D:\file\file\Docker学习\images\image-20210824001402213.png)]

自定义网络

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ipi9KFbT-1668560795211)(D:\file\file\Docker学习\images\image-20210824001747364.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0BVi3jGN-1668560795212)(D:\file\file\Docker学习\images\image-20210824002251164.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tdwVPBui-1668560795212)(D:\file\file\Docker学习\images\image-20210824002400020.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4tN6r0Du-1668560795212)(D:\file\file\Docker学习\images\image-20210824002738660.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-z5oNo1Ys-1668560795212)(D:\file\file\Docker学习\images\image-20210824002833788.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ir7Ubs8Q-1668560795213)(D:\file\file\Docker学习\images\image-20210824002926251.png)]

网络连通

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7C2CMFKf-1668560795213)(D:\file\file\Docker学习\images\image-20210824003227365.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vemQaXaq-1668560795213)(D:\file\file\Docker学习\images\image-20210824003436221.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZCj2o56N-1668560795213)(D:\file\file\Docker学习\images\image-20210824003506844.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HINkfVDu-1668560795214)(D:\file\file\Docker学习\images\image-20210824003535130.png)]

实战部署redis集群

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WPZMk5AW-1668560795214)(D:\file\file\Docker学习\images\image-20210824003702307.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fvGJekey-1668560795214)(D:\file\file\Docker学习\images\image-20210824003824251.png)]

启动redis服务

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VGLT913m-1668560795214)(D:\file\file\Docker学习\images\image-20210824004053074.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JN4xrI9I-1668560795215)(D:\file\file\Docker学习\images\image-20210824004354082.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RWcvaV4x-1668560795215)(D:\file\file\Docker学习\images\image-20210824004638941.png)]

spring boot微服务打包Docker镜像

就是新建一个file,没有文件的后缀名,输入“Dockerfile"即可

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pm8LQz2F-1668560795215)(D:\file\file\Docker学习\images\image-20210824005218789.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VItRNc0f-1668560795215)(D:\file\file\Docker学习\images\image-20210824005613562.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
下来直接上传(img-J0dMbMuS-1668560795216)(D:\file\file\Docker学习\images\image-20210824005653243.png)]

docker使用apache pulsar

运行单机集群

docker run -it -d \
    -p 6650:6650 \
    -p 8080:8080 \
    -v $PWD/data:/pulsar/data \
    apachepulsar/pulsar:latest \
    bin/pulsar standalone

docker 使用nats

先copy出nats的配置文件,然后再挂载,因为无法进入到容器内部
[root@rookieWRL myNats3]# ls
nats1-server.conf

[root@rookieWRL myNats3]# docker run -d -it -p 4222:4222 -v $PWD/nats1-server.conf:/nats-server.conf nats:latest

docker 使用postgres

docker run -d --name pg1 -p 5433:5432 -e POSTGRES_PASSWORD=wrl128201 -v D:/dockerVolumes/pg1:/var/lib/postgresql/data postgres

docker 运行ES

docker run -d --name elasticsearch --net somenetwork -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:tag

1668560795212)]

[外链图片转存中…(img-Ir7Ubs8Q-1668560795213)]

网络连通

[外链图片转存中…(img-7C2CMFKf-1668560795213)]

[外链图片转存中…(img-vemQaXaq-1668560795213)]

[外链图片转存中…(img-ZCj2o56N-1668560795213)]

[外链图片转存中…(img-HINkfVDu-1668560795214)]

实战部署redis集群

[外链图片转存中…(img-WPZMk5AW-1668560795214)]

[外链图片转存中…(img-fvGJekey-1668560795214)]

启动redis服务

[外链图片转存中…(img-VGLT913m-1668560795214)]

[外链图片转存中…(img-JN4xrI9I-1668560795215)]

[外链图片转存中…(img-RWcvaV4x-1668560795215)]

spring boot微服务打包Docker镜像

就是新建一个file,没有文件的后缀名,输入“Dockerfile"即可

[外链图片转存中…(img-pm8LQz2F-1668560795215)]

[外链图片转存中…(img-VItRNc0f-1668560795215)]

[外链图片转存中…(img-J0dMbMuS-1668560795216)]

docker使用apache pulsar

运行单机集群

docker run -it -d \
    -p 6650:6650 \
    -p 8080:8080 \
    -v $PWD/data:/pulsar/data \
    apachepulsar/pulsar:latest \
    bin/pulsar standalone

docker 使用nats

先copy出nats的配置文件,然后再挂载,因为无法进入到容器内部
[root@rookieWRL myNats3]# ls
nats1-server.conf

[root@rookieWRL myNats3]# docker run -d -it -p 4222:4222 -v $PWD/nats1-server.conf:/nats-server.conf nats:latest

docker 使用postgres

docker run -d --name pg1 -p 5433:5432 -e POSTGRES_PASSWORD=wrl128201 -v D:/dockerVolumes/pg1:/var/lib/postgresql/data postgres

docker 运行ES

docker run -d --name elasticsearch --net somenetwork -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:tag

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/9193.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CSS初阶语法

CSS初阶语法 文章目录CSS初阶语法1.CSS介绍2.CSS引入方式3.CSS基础选择器3.1 标签选择器(标签名字)3.2 类选择器(class)3.3 id选择器(id)3.4 通配符选择器(*)4.文字基本样式4.1 字体样式(font-size、font-weight、font-style、font-family、font)4.2 文本样式(text-indent、tex…

SpringBoot SpringBoot 开发实用篇 2 配置高级 2.1 第三方bean 属性绑定

SpringBoot 【黑马程序员SpringBoot2全套视频教程&#xff0c;springboot零基础到项目实战&#xff08;spring boot2完整版&#xff09;】 SpringBoot 开发实用篇 文章目录SpringBootSpringBoot 开发实用篇2 配置高级2.1 第三方bean 属性绑定2.1.1 ConfigurationProperties2.…

ERP系统有哪些品牌?

企业资源规划 (ERP) 系统可以帮助企业在一个系统中管理其整个运营。凭借 CRM、人力资源、会计、供应链管理等功能&#xff0c;优秀的 ERP 系统可以集中并简化每位员工的日常工作。 那么&#xff0c;ERP系统有哪些品牌&#xff1f;哪个好用&#xff1f;下面就来简单介绍几个主流…

Android Studio App开发之网络通信中移动数据格式JSON的讲解以及实战(附源码 超详细必看)

运行有问题或需要源码请点赞关注收藏后评论区留言~~~ 一、移动数据格式JSON 网络通信的交互数据格式有两大类&#xff0c;分别是JSON和XML&#xff0c;前者短小精悍&#xff0c;后者表现力丰富&#xff0c;对于App来说&#xff0c;基本采用JSON格式与服务器通信。一是手机流量…

计算机网络的常见面试题

GET 和 POST 的区别 作用 GET用来获取资源&#xff0c;POST用于传输实体主体 参数位置 GET的参数放在URL中&#xff0c;POST的参数存储在实体主体中&#xff0c;并且GET方法提交的请求的URL中的数据多是2048字节&#xff0c;POST请求没有大小限制 安全性 GET方法因为参数放在…

二极管:Irush与我相干!

故事还没结束,我们必须继续讲,继续挖,边说边究。 即使时间us级不会让FUSE同学Open,FUSE后面的兄弟姐妹呢,可以扛住事吗?那可有3.4A的能量冲击啊! 不确定,就有可能。墨菲老人家曾说过:会出错的事总会出错。也就是会发生的事总会发生,只要不给时间加上一个期限,非要给…

外卖项目03---分类管理业务开发

目录 一、公共字段自动填充 41 1.1问题分析 41 ​编辑1.2公共字段自动填充---代码实现并测试 42 1.3公共字段自动填充---功能完善 43 二、新增分类 44 2.1需求分析 44 三、分类信息查询 45 3.1需求分析 45 3.2代码开发 流程分析 四、删除分类 46 4.1需求分析 46 4.2…

教你打造高性能的 Go 缓存库

我在看一些优秀的开源库的时候看到一个有意思的缓存库 fastcache&#xff0c;在它的介绍主要有以下几点特点&#xff1a; 读写数据要快&#xff0c;即使在并发下&#xff1b;即使在数 GB 的缓存中&#xff0c;也要保持很好的性能&#xff0c;以及尽可能减少 GC 次数&#xff1…

基于Fluent求解器进行二次开发到底怎么做?

作者 | 小田老师 Ansys Fluent软件作为通用的流体仿真软件&#xff0c;功能模型虽然多而全&#xff0c;但是缺乏相应的行业专业性。同时仿真分析具有一定的技术门槛&#xff0c;既需要技术人员具备行业基础&#xff0c;也需要积累相关仿真经验&#xff0c;对软件操作要有较高的…

Docker安装Redis

文章目录1.Docker搜索Redis镜像2.Docker拉取镜像3.Docker挂载配置文件4.启动Redis 容器5.测试Redis6.Docker删除Redis1.Docker搜索Redis镜像 命令&#xff1a;docker search <镜像名称> docker search redis可以看到有很多redis的镜像&#xff0c;此处因没有指定版本&…

干货|数据安全治理白皮书4.0(文末附下载链接)

数据安全治理白皮书是国内最早的数据安全治理白皮书系列&#xff0c;围绕数据安全治理&#xff0c;“新理论、新技术、新实践”&#xff0c;一次系统汇总、梳理分析与集中呈现&#xff0c;2018年-2021年&#xff0c;已发布1.0/2.0/3.0三个版本&#xff0c;2022年&#xff0c;已…

线性二分类的实现

神经网络结构 从视觉上判断是线性可分的&#xff0c;使用单层神经网络&#xff1b; 输入层设置两个输入单元&#xff0c;表示经纬度&#xff1a;&#x1d44b;&#x1d465;1,&#x1d465;2 输出层设置一个单元&#xff0c;表示地盘所属阵营&#xff1a; &#x1d467;&…

STC15W单片机防丢语音报警GPS北斗定位测距双机LORA无线手持可充电

实践制作DIY- GC0091-防丢语音报警 一、功能说明&#xff1a; 基于STC15W单片机设计-防丢语音报警 功能介绍&#xff1a; 主机硬件&#xff1a; STC15W4K48S4&#xff08;或者STM32F103CxT6&#xff09;系列最小系统板OLED显示器LORA无线通讯模块GPS北斗双模定位模块蜂鸣器…

RGD环肽:环六肽c(GRGDSP),CAS号: 135432-37-0

c(GRGDSP)是一个环RGD肽。刺激大鼠传入小动脉的收缩。已用于顺铂的靶向给药。结果表明&#xff0c;c(RGDSP)可抑制小鼠B16黑色素瘤细胞在纤连蛋白包被孔上的粘附。 编号: 194990中文名称: RGD环肽&#xff1a;环六肽c(GRGDSP)英文名: cyclo(GRGDSP)CAS号: 135432-37-0单字母: c…

电子统计台账:中文标记月度流水账格式数据的转换,以及过滤模板的普遍适配性

上一个例子展示的台账格式中&#xff0c;月份是阿拉伯数字。本文试着转换中文月份格式的台账数据。 1 新建项目 新建一个项目“测试06_工业生产_中文月度流水账_202101”。 切换到2021年1月。 2 打开数据源文件 打开2个企业数据源文件&#xff1a; 6流水账式中文月份M_1-…

go pprof 实战

为什么要进行性能优化 哪些情况需要进行性能优化 其实关于性能优化的主题&#xff0c;网上已经讨论很多次&#xff0c;这里谈一下我的理解&#xff0c;那么其实核心就是 2 个点&#xff1a; 服务一直高负载&#xff0c;业务增长需要经常扩容架构不能满足业务发展&#xff0c…

[附源码]java毕业设计基于的考研408课程学习平台

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

阿里云产品经理刘宇:Serverless 的前世今生

2022 年 9 月 24 日&#xff0c;阿里云用户组&#xff08;AUG&#xff09;第 12 期活动在厦门举办。活动现场&#xff0c;阿里云 Serverless 产品经理刘宇&#xff0c;向参会企业代表分享了Serverless 架构的前世今生。本文根据演讲内容整理而成&#xff0c;希望和大家一起探索…

基于SSM花卉商城设计与实现

项目描述 临近学期结束&#xff0c;还是毕业设计&#xff0c;你还在做java程序网络编程&#xff0c;期末作业&#xff0c;老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下&#xff0c;你想解决的问…

商业智能BI,助力企业数据文化建设

当今&#xff0c;互联网技术飞速发展&#xff0c;我们每天都在接收者来自各方面的海量信息&#xff0c;这样一个信息爆炸的时代&#xff0c;企业如何看待数据、整理数据、利用数据&#xff0c;又如何从这些数据中发掘出有效的信息&#xff0c;成为企业新的生存技能之一。 数据…