Docker概述
Docker安装
Docker命令
Docker镜像
Docker的数据卷
DockerFile
Docker网络原理
IDEA整合Docker
集群-Docker Compose
Docker Swarm
CI\CD jenkins
安装教程:(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通过隔离机制,隔离不同的应用,可以将服务器利用到极致!
1.受欢迎的原因:十分轻巧
在容器技术出现之前都是使用虚拟机技术
虚拟机:使用一个软件,通过这个软件可以虚拟出来一台或者多台电脑。
docker容器技术,也是一种虚拟化技术。
容器化技术不是模拟的一个完整的操作系统
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LtjJtSWo-1668560795179)(D:\file\file\Docker学习\images\image-20210803144200692.png)]
比较Docker和虚拟机的不同:
应用更快的交付和部署
更快捷的审计和扩缩容
更简单的系统运维
更高效的计算资源利用
Docker时内核级别的虚拟化,可以在一个物理机上运行很多的容器实例,服务器的性能可以被压榨到极致!
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sg8P5yd7-1668560795179)(D:\file\file\Docker学习\images\image-20210803144810955.png)]
镜像:
一个docker镜像好比一个模板,可以通过这个模板来创建容器服务,tomcat镜像===>run===>tomcat01容器(提供服务器)
通过这个镜像看可以创建多个容器(最终服务运行或者运行就是在容器中的)。
仓库:
就是存放镜像的地方。仓库分为共有仓库和私有仓库。DockerHub(默认时国外的)
阿里云。。。都有容器容器服务(可以配置镜像加速!)
容器:
Docker利用容器技术,独立运行一个或者一组应用,通过镜像来创建的。
启动,停止,删除,基本命令
目前就可以把这个容器理解为就是一个建议的Linux系统
1.环境准备:
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/dockersudo tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://2qs6lhsp.mirror.aliyuncs.com"]
}
EOFsudo systemctl daemon-reloadsudo systemctl restart docker
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pQye22jY-1668560795181)(D:\file\file\Docker学习\images\image-20210803163549089.png)]
Docker是一个Client-server结构的系统,Docker的守护进程运行在主机上,通过socket客户端访问。
Docker Server接受到Docker-client的指令,就会执行这个命令
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DZ4fyR8G-1668560795181)(D:\file\file\Docker学习\images\image-20210803163952459.png)]
1.Docker有着比虚拟机更少的抽象层
2.docker利用的时宿主机的内核,vm需要的是Guest OS,分钟级别的启动,而docker是利用宿主机的操作系统,省略了这个复杂的过程,新建容器的过程是秒级的
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1dbm6tcX-1668560795182)(D:\file\file\Docker学习\images\image-20210803164528277.png)]
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)]
[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
新建容器并启动
#参数说明
--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
-a #列出当前正在运行的容器+带出历史运行过的容器
-n=? #显示最近创建的容器
-q #只显示容器的id
1.exit #直接退出容器
2.ctrl+P+Q快捷键 #容器不停止退出
docker rm #删除删除一个或多个指定的容器 不能删除一个在运行的容器
docker rm -f #删通过 SIGKILL 信号强制删除一个运行中的容器。
docker rm $(docker ps -a -q) #删除所有已经停止的容器
docker ps -a -q|xargs docker rm #删除所有的容器
docker container prune #清理所有处于终止状态的容器
docker start #容器id #启动容器
docker restart 容器id #重启容器
docker stop 容器id #停止当前正在运行的容器
docker kill 容器id #强制停止当前容器
# 命令 docker run -d 镜像名
docker run -d centos
**********
#问题:docker ps 发现centos 停止了
#常见的坑:docker容器使用后台运行,就必须要一个前要运行,docker 发现没有应用就会自动停止
#nignx,容器启动后,发现自己没有提供服务,就会立刻停止,就是没有程序了
命令: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
命令:dockers top 容器id
[root@rookieWRL ~]# docker top 6d3671f6e27b
UID PID PPID C STIME TTY
root 8099 8081 0 17:06 pts/0
命令: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}}}}
]
#通常我们的容器都是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 进入容器正在执行的终端,不会启动新的进程
命令: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_PATHCopy 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)]
#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配置文件?–数据卷的技术
#官方启动方法:我们之前的启动都是是后台的,用完停止容器之后,容器还是可以查到的,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,我们在外部放置项目,就自动同步到内部就好了?
#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)]
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”的容器已经存在,我们取一个别的名字即可
[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(先用这个,不是最佳选择)
docker run -d -p 8088:9000 \ --restart=always -v /var/run/docker.sock:/var/run/docker.sock --privileged=true portainer/portainer
Rancher(CI/CD再用)
Docker图形化管理工具。提供一个后台面板给我们操作
docker run -d -p 8088:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock --privileged=true portainer/portainer
访问测试:
外网: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镜像,就可以直接跑起来!
如何得到镜像:
1.从远程下载
2.朋友拷贝过来
3.自己制作一个镜像dockerFile
UnionFs(联合文件系统):Union文件系统(UnionFS)是一种分层、轻量级并且高性能的文件系统。它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同的目录挂载到同一个虚拟文件系统下(unite serveral directories into a single virtual filesystem).Union文件系统是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)]
如何提交一个自己的镜像
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)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(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)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(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)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3ot6EXGm-1668560795200)(D:\file\file\Docker学习\images\image-20210823183410257.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kbVYlKcr-1668560795200)(D:\file\file\Docker学习\images\image-20210823183635326.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(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)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(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)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(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 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)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(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)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(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)]
就是新建一个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 run -it -d \-p 6650:6650 \-p 8080:8080 \-v $PWD/data:/pulsar/data \apachepulsar/pulsar:latest \bin/pulsar standalone
先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 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)]
[外链图片转存中…(img-WPZMk5AW-1668560795214)]
[外链图片转存中…(img-fvGJekey-1668560795214)]
启动redis服务
[外链图片转存中…(img-VGLT913m-1668560795214)]
[外链图片转存中…(img-JN4xrI9I-1668560795215)]
[外链图片转存中…(img-RWcvaV4x-1668560795215)]
就是新建一个file,没有文件的后缀名,输入“Dockerfile"即可
[外链图片转存中…(img-pm8LQz2F-1668560795215)]
[外链图片转存中…(img-VItRNc0f-1668560795215)]
[外链图片转存中…(img-J0dMbMuS-1668560795216)]
docker run -it -d \-p 6650:6650 \-p 8080:8080 \-v $PWD/data:/pulsar/data \apachepulsar/pulsar:latest \bin/pulsar standalone
先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 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和HTTPS协议