Docker概述
Docker学习
-
Docker概述
-
Docker安装
-
Docker命令
-
镜像命令
-
容器命令
-
操作命令
-
-
Docker镜像
-
容器数据卷
-
DockerFile
-
Docker网络原理
-
IDEA整合Docker
-
Docker Compose(集群的管理)
-
Docker Swarm
-
CI/CD jenkins
Docker的历史
2010年,dotCloud,美国 几个年轻人做
2013年开源
2014.4.9 Docker1.0发布
docker也是虚拟化技术,与虚拟机不同的是,docker只是虚拟软件部分,比较小巧。Docker又被称为容器化技术。
聊聊Docker
Docker是基于go语言开发的!开源项目。
文档地址:https://docs.docker.com/ 文档比较详细!
镜像仓库地址:https://hub.docker.com/ (存储镜像)
Docker 安装
Docker的基本组成
镜像(image):
docker镜像就好比一个模板,可以通过这个模板来创建容器服务,tomcat镜像 ==》run ==》tomcat01容器(提供服务器),通过这个镜像可以创建多个容器(最终服务运行或者项目运行在容器中)
容器(container):
Docker利用容器技术,独立运行一个或者一组应用,通过镜像来创建的。
启动,停止,删除,基本命令!
目前可以把这个容器理解为简易的linux系统
仓库(repository):
仓库就是存放镜像的地方,仓库分公用仓库和私有仓库
安装Docker
环境准备
linux服务器
环境查看
# 系统内核 3.10 以上
[root@VM-16-9-centos /]# uname -r
3.10.0-862.el7.x86_64
# 系统版本
[root@VM-16-9-centos /]# cat /etc/os-release
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"
CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"
安装
帮助文档:
# 1.卸载旧的版本
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
# 2.需要的安装包
yum install -y yum-utils
# 3.设置镜像的仓库
国外的:
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
阿里云:(推荐使用)
yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 4.安装docker相关 docker-ce社区 ee企业版
yum install docker-ce docker-ce-cli containerd.io
# 5.启动docker
systemctl start docker
# 6.判断启动成功
docker version
# 7.运行hello-world程序
docker run hello-world
# 8.查看下载的镜像
[root@VM-16-9-centos /]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest bf756fb1ae65 10 months ago 13.3kB
卸载docker
#1.卸载依赖
yum remove docker-ce docker-ce-cli containerd.io
#2.删除目录
rm -rf /var/lib/docker
腾讯云配置镜像加速
#1.创建 daemon.json文件 (创建文件夹命令:mkdir)
touch /etc/docker/daemon.json
2.打开文件,加入配置
vim daemon.json (编辑)
esc (切换模式)
:wq! (保存并强制退出)
3.重新启动 Docker 服务。
sudo systemctl daemon-reload
sudo systemctl restart docker
4.检查加速器是否生效
docker info
daemon.json内加入的内容
{ "registry-mirrors": [ "https://mirror.ccs.tencentyun.com" ] }
Registry Mirrors: (显示此内容说明腾讯云docker镜像生效)
https://mirror.ccs.tencentyun.com/
底层原理
Docker是怎么工作的
Docker是一个Client -Server结构的系统,Docker的守护进程运行在主机上。通过Socket从客户端访问!
DockerServer接受到Docker-Client的指令,就会执行这个命令!
Dcoker的常用命令
帮助命令
docker version #docker版本信息
docker info #显示docker的系统信息,包括镜像和容器的数量
docker --help #万能命令
docker命令文档的地址:https://docs.docker.com/engine/reference/
镜像命令
docker images 查看所有本地主机上的镜像
[root@VM-16-9-centos /]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest bf756fb1ae65 10 months ago 13.3k
# 解释
REPOSITORY 镜像的仓库源
TAG 镜像的标签
IMAGE ID 镜像的id
CREATED 镜像的创建时间
SIZE 镜像的大小
#可选项
Options:
-a, --all Show all images (default hides intermediate images)
--digests Show digests
-f, --filter filter Filter output based on conditions provided
--format string Pretty-print images using a Go template
--no-trunc Don't truncate output
-q, --quiet Only show numeric IDs 只显示镜像的id
docker search搜索镜像
[root@VM-16-9-centos /]# docker search mysql
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relation… 10115 [OK]
# 可选项,通过搜索过滤
-f, --filter filter Filter output based on conditions provided
--format string Pretty-print search using a Go template
--limit int Max number of search results (default 25)
--no-trunc Don't truncate output
# 例如
[root@VM-16-9-centos /]# docker search mysql --filter=stars=3000
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relation… 10115 [OK]
mariadb MariaDB is a community-developed fork of MyS… 3715 [OK]
docker pull 下载镜像
# 下载镜像 docker pull 镜像名 [:tag]
[root@VM-16-9-centos /]# docker pull mysql
Using default tag: latest # 如果不写tag,默认下载latest
latest: Pulling from library/mysql
bb79b6b2107f: Pull complete #分层下载,docker image的核心 联合文件系统
49e22f6fb9f7: Pull complete
842b1255668c: Pull complete
9f48d1f43000: Pull complete
c693f0615bce: Pull complete
8a621b9dbed2: Pull complete
0807d32aef13: Pull complete
a56aca0feb17: Pull complete
de9d45fd0f07: Pull complete
1d68a49161cc: Pull complete
d16d318b774e: Pull complete
49e112c55976: Pull complete
Digest: sha256:8c17271df53ee3b843d6e16d46cff13f22c9c04d6982eb15a9a47bd5c9ac7e2d #签名
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest #真实地址
#指定版本下载
[root@VM-16-9-centos /]# docker pull mysql:5.7
5.7: Pulling from library/mysql
bb79b6b2107f: Already exists
49e22f6fb9f7: Already exists
842b1255668c: Already exists
9f48d1f43000: Already exists
c693f0615bce: Already exists
8a621b9dbed2: Already exists
0807d32aef13: Already exists
f15d42f48bd9: Pull complete
098ceecc0c8d: Pull complete
b6fead9737bc: Pull complete
351d223d3d76: Pull complete
Digest: sha256:4d2b34e99c14edb99cdd95ddad4d9aa7ea3f2c4405ff0c3509a29dc40bcb10ef
Status: Downloaded newer image for mysql:5.7
docker.io/library/mysql:5.7
docker rmi 删除镜像
[root@VM-16-9-centos /]# docker rmi -f 容器id #删除指定容器
[root@VM-16-9-centos /]# docker rmi -f 容器id 容器id 容器id #删除多个容器
[root@VM-16-9-centos /]# docker rmi -f $(docker images -aq) #删除所有容器
容器命令
说明 :我们有了镜像才可以创建容器,linux ,下载一个centos镜像来测试学习
docker run [可选参数] iamge
#参数说明
--name=“Name" 容器名字,用来区分容器
-d 后台方式运行
-it 使用交互方式运行,进入容器查看内容
-p 指定容器的端口号 -p 8080:8080
-p ip:主机端口:容器端口
-p 主机端口:容器端口(常用)
-p 容器端口
-p 随机指定端口
测试,启动并进入容器
[root@VM-16-9-centos /]# docker run -it centos /bin/bash
[root@18a0adac3eff /]#
[root@18a0adac3eff /]# ls
bin etc lib lost+found mnt proc run srv tmp var
dev home lib64 media opt root sbin sys usr
[root@18a0adac3eff /]# exit
exit
[root@VM-16-9-centos /]# ls
bin data etc lib lost+found mnt proc run srv tmp var
boot dev home lib64 media opt root sbin sys usr
[root@VM-16-9-centos /]#
列出所有运行的容器
#docker ps 命令 #查看当前正在运行的容器
-a #查看曾经运行的容器
-n=? #显示最近创建的容器
-q #只显示容器的编号
[root@VM-16-9-centos /]# docker ps #查看当前正在运行的容器
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@VM-16-9-centos /]# docker ps -a #查看曾经运行的容器
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
18a0adac3eff centos "/bin/bash" 3 minutes ago Exited (0) 2 minutes ago loving_hermann
3d51fffe8a64 hello-world "/hello" 6 hours ago Exited (0) 6 hours ago wonderful_poincare
退出容器
exit #直接容器停止并退出
Ctrl+P+Q #容器不停止推出
删除容器
docker rm 容器id #删除指定容器
docker rm $(docker ps -aq) #删除所有容器
启动和停止容器操作
docker start 容器id #启动容器
docker restart 容器id #重启容器
docker stop 容器id #停止当前正在运行的容器
docker kill 容器id #强制定制当前容器
常用其他命令
后台启动容器
[root@VM-16-9-centos /]# docker run -it centos
[root@b1e7e7913fbb /]# [root@VM-16-9-centos /]#
查看日志
[root@VM-16-9-centos /]# docker logs -f -t --tail 10 b1e7e7913fbb #查看指定日志的最近10条信息
查看容器中进程信息
[root@VM-16-9-centos /]# docker top b1e7e7913fbb
UID PID PPID C STIME TTY TIME CMD
root 31400 31384 0 17:03 pts/0 00:00:00 /bin/bash
查看镜像的元数据
[root@VM-16-9-centos /]# docker ps -a #当前运行的容器
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b1e7e7913fbb centos "/bin/bash" 13 minutes ago Up 13 minutes loving_montalcini
18a0adac3eff centos "/bin/bash" 42 minutes ago Exited (0) 40 minutes ago loving_hermann
3d51fffe8a64 hello-world "/hello" 6 hours ago Exited (0) 6 hours ago wonderful_poincare
#docker inspect 容器id
#测试
[root@VM-16-9-centos /]# docker inspect b1e7e7913fbb
[
{
"Id": "b1e7e7913fbbb76ba785ae148cc6ec4b22714445df2d583d4eca564111726130",
"Created": "2020-10-30T09:03:43.939649072Z", #创建时间
"Path": "/bin/bash", #默认控制台
"Args": [], #传递参数
"State": { #当前状态
"Status": "running",
"Running": true,
"Paused": false,
"Restarting": false,
"OOMKilled": false,
"Dead": false,
"Pid": 31400,
"ExitCode": 0,
"Error": "",
"StartedAt": "2020-10-30T09:03:44.216040536Z",
"FinishedAt": "0001-01-01T00:00:00Z"
},
"Image": "sha256:0d120b6ccaa8c5e149176798b3501d4dd1885f961922497cd0abef155c869566",
"ResolvConfPath": "/var/lib/docker/containers/b1e7e7913fbbb76ba785ae148cc6ec4b22714445df2d583d4eca564111726130/resolv.conf",
"HostnamePath": "/var/lib/docker/containers/b1e7e7913fbbb76ba785ae148cc6ec4b22714445df2d583d4eca564111726130/hostname",
"HostsPath": "/var/lib/docker/containers/b1e7e7913fbbb76ba785ae148cc6ec4b22714445df2d583d4eca564111726130/hosts",
"LogPath": "/var/lib/docker/containers/b1e7e7913fbbb76ba785ae148cc6ec4b22714445df2d583d4eca564111726130/b1e7e7913fbbb76ba785ae148cc6ec4b22714445df2d583d4eca564111726130-json.log",
"Name": "/loving_montalcini",
"RestartCount": 0,
"Driver": "overlay2",
"Platform": "linux",
"MountLabel": "",
"ProcessLabel": "",
"AppArmorProfile": "",
"ExecIDs": null,
"HostConfig": { #主机配置
"Binds": null,
"ContainerIDFile": "",
"LogConfig": {
"Type": "json-file",
"Config": {}
},
"NetworkMode": "default",
"PortBindings": {},
"RestartPolicy": {
"Name": "no",
"MaximumRetryCount": 0
},
"AutoRemove": false,
"VolumeDriver": "",
"VolumesFrom": null,
"CapAdd": null,
"CapDrop": null,
"Capabilities": null,
"Dns": [],
"DnsOptions": [],
"DnsSearch": [],
"ExtraHosts": null,
"GroupAdd": null,
"IpcMode": "private",
"Cgroup": "",
"Links": null,
"OomScoreAdj": 0,
"PidMode": "",
"Privileged": false,
"PublishAllPorts": false,
"ReadonlyRootfs": false,
"SecurityOpt": null,
"UTSMode": "",
"UsernsMode": "",
"ShmSize": 67108864,
"Runtime": "runc",
"ConsoleSize": [
0,
0
],
"Isolation": "",
"CpuShares": 0,
"Memory": 0,
"NanoCpus": 0,
"CgroupParent": "",
"BlkioWeight": 0,
"BlkioWeightDevice": [],
"BlkioDeviceReadBps": null,
"BlkioDeviceWriteBps": null,
"BlkioDeviceReadIOps": null,
"BlkioDeviceWriteIOps": null,
"CpuPeriod": 0,
"CpuQuota": 0,
"CpuRealtimePeriod": 0,
"CpuRealtimeRuntime": 0,
"CpusetCpus": "",
"CpusetMems": "",
"Devices": [],
"DeviceCgroupRules": null,
"DeviceRequests": null,
"KernelMemory": 0,
"KernelMemoryTCP": 0,
"MemoryReservation": 0,
"MemorySwap": 0,
"MemorySwappiness": null,
"OomKillDisable": false,
"PidsLimit": null,
"Ulimits": null,
"CpuCount": 0,
"CpuPercent": 0,
"IOMaximumIOps": 0,
"IOMaximumBandwidth": 0,
"MaskedPaths": [
"/proc/asound",
"/proc/acpi",
"/proc/kcore",
"/proc/keys",
"/proc/latency_stats",
"/proc/timer_list",
"/proc/timer_stats",
"/proc/sched_debug",
"/proc/scsi",
"/sys/firmware"
],
"ReadonlyPaths": [
"/proc/bus",
"/proc/fs",
"/proc/irq",
"/proc/sys",
"/proc/sysrq-trigger"
]
},
"GraphDriver": {
"Data": {
"LowerDir": "/var/lib/docker/overlay2/76fedde73f783a0dee97523966854710f935ed3ae01d194a480a859f1f730cc0-init/diff:/var/lib/docker/overlay2/691e4c8053998fafe2f2ed1547b87578994b99401dbfc41ff5533ab91e4b37fa/diff",
"MergedDir": "/var/lib/docker/overlay2/76fedde73f783a0dee97523966854710f935ed3ae01d194a480a859f1f730cc0/merged",
"UpperDir": "/var/lib/docker/overlay2/76fedde73f783a0dee97523966854710f935ed3ae01d194a480a859f1f730cc0/diff",
"WorkDir": "/var/lib/docker/overlay2/76fedde73f783a0dee97523966854710f935ed3ae01d194a480a859f1f730cc0/work"
},
"Name": "overlay2"
},
"Mounts": [], #挂载
"Config": {
"Hostname": "b1e7e7913fbb",
"Domainname": "",
"User": "",
"AttachStdin": true,
"AttachStdout": true,
"AttachStderr": true,
"Tty": true,
"OpenStdin": true,
"StdinOnce": true,
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
],
"Cmd": [
"/bin/bash"
],
"Image": "centos",
"Volumes": null,
"WorkingDir": "",
"Entrypoint": null,
"OnBuild": null,
"Labels": {
"org.label-schema.build-date": "20200809",
"org.label-schema.license": "GPLv2",
"org.label-schema.name": "CentOS Base Image",
"org.label-schema.schema-version": "1.0",
"org.label-schema.vendor": "CentOS"
}
},
"NetworkSettings": { #网络
"Bridge": "",
"SandboxID": "a798877b2f81d24273b9e9268d84e84c2cf11c1bc2ae9f7e7c3d9d5608ed0579",
"HairpinMode": false,
"LinkLocalIPv6Address": "",
"LinkLocalIPv6PrefixLen": 0,
"Ports": {},
"SandboxKey": "/var/run/docker/netns/a798877b2f81",
"SecondaryIPAddresses": null,
"SecondaryIPv6Addresses": null,
"EndpointID": "1d5732d277f37a347991434df07c02cd8ca90f9c93f03d6fe90bb8090cd5436e",
"Gateway": "172.18.0.1",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"IPAddress": "172.18.0.2",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"MacAddress": "02:42:ac:12:00:02",
"Networks": {
"bridge": {
"IPAMConfig": null,
"Links": null,
"Aliases": null,
"NetworkID": "b5173200987fdb24c1b9476bbedd22b0fc0966993c1eda25d4a33ffaac88ed45",
"EndpointID": "1d5732d277f37a347991434df07c02cd8ca90f9c93f03d6fe90bb8090cd5436e",
"Gateway": "172.18.0.1",
"IPAddress": "172.18.0.2",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"MacAddress": "02:42:ac:12:00:02",
"DriverOpts": null
}
}
}
}
]
进入当前运行的容器
#我们通常容器使用后台方式运行,需要进入容器,修改一些配置
#方式一:
docker exec -it 容器id bashShell #进入容器后开启一个新的终端,可以在里面操作(常用)
#测试
[root@VM-16-9-centos /]# docker ps
CONTAINERID IMAGE COMMAND CREATED STATUS PORTS NAMES
b1e7e7913fbb centos "/bin/bash" 21 minutes ago Up 21 minutes loving_montalcini
[root@VM-16-9-centos /]# docker exec -it b1e7e7913fbb /bin/bash
[root@b1e7e7913fbb /]# ls
bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var
[root@b1e7e7913fbb /]# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 09:03 pts/0 00:00:00 /bin/bash
root 19 0 0 09:25 pts/1 00:00:00 /bin/bash
root 33 19 0 09:30 pts/1 00:00:00 ps -ef
#方式二:
docker attach 容器id #进入容器证字啊执行的终端,不会启动新的进程
#测试
[root@VM-16-9-centos /]# docker attach b1e7e7913fbb
从容器内拷贝文件到主机上
docker cp 容器id:容器内路径 目的主机路径
小结
Docker安装Nginx
#1.搜索镜像
[root@VM-16-9-centos /]# docker search nginx
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
nginx Official build of Nginx. 13938 [OK]
#2.拉取镜像
[root@VM-16-9-centos /]# docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
bb79b6b2107f: Pull complete
111447d5894d: Pull complete
a95689b8e6cb: Pull complete
1a0022e444c2: Pull complete
32b7488a3833: Pull complete
Digest: sha256:ed7f815851b5299f616220a63edac69a4cc200e7f536a56e421988da82e44ed8
Status: Downloaded newer image for nginx:latest
docker.io/library/nginx:latest
[root@VM-16-9-centos /]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest f35646e83998 2 weeks ago 133MB
# 3.启动镜像
# -d 后台运行
# --name 给容器命名
# -p 宿主机端口,容器内部端口
[root@VM-16-9-centos /]# docker run -d --name nginx -p 3344:80 nginx
917b547da222824a064611ee5c46818de854e36f344a9e830f94edcfdd641a1f
[root@VM-16-9-centos /]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
917b547da222 nginx "/docker-entrypoint.…" 7 seconds ago Up 6 second s 0.0.0.0:3344->80/tcp nginx
#4.测试安装成功
[root@VM-16-9-centos /]# curl localhost:3344
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
body {
width: 35em;
margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif;
}
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>
<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>
<p><em>Thank you for using nginx.</em></p>
</body>
</html>
在linux系统找某个文件命令: whereis 文件名
tomcat 安装
# 官方的使用 (该方法一般是用来测试,用完自动删除)
docker run -it --rm tomcat:9.0
#1.拉取tomcat镜像
[root@VM-16-9-centos /]# docker pull tomcat
#2.运行tomcat镜像,指定端口
[root@VM-16-9-centos /]# docker run -d --name tomcat -p 808:8080 tomcat
#3.查看运行tomcat的containerid
[root@VM-16-9-centos /]# docker ps
#4.进入tomcat中
[root@VM-16-9-centos /]# docker exec -it 52798a90b7c3 /bin/bash
#5.文件复制
root@52798a90b7c3:/usr/local/tomcat# cp -r webapps.dist/* webapps
部署es+kibana
# 官网启动命令
# --net somenetwork 网络配置
docker run -d --name elasticsearch --net somenetwork -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:tag
docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:tag
#测试连接
[root@VM-16-9-centos ~]# curl localhost:9200
{
"name" : "c8a274db698a",
"cluster_name" : "docker-cluster",
"cluster_uuid" : "Oqh5Ta54RK-MaKkEMpDh9A",
"version" : {
"number" : "7.9.3",
"build_flavor" : "default",
"build_type" : "docker",
"build_hash" : "c4138e51121ef06a6404866cddc601906fe5c868",
"build_date" : "2020-10-16T10:36:16.141335Z",
"build_snapshot" : false,
"lucene_version" : "8.6.2",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
#查看服务器的状态
docker stats
#测试
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
c8a274db698a elasticsearch 0.27% 1.241GiB / 1.796GiB 69.14% 1.29kB / 1.04kB 160MB / 1.24MB 4
#修改配置文件 -e 环境配置修改,启动查看内存消耗
docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xmx512m" elasticsearch:7.9.3
可视化
-
portainer (先用这个)
docker run -d -p 8088:9000 \ --restart=always -v /var/run/docker.sock:/var/run/docker.sock --privileged=true portainer/portainer
-
Rancher(CI/CD再用)
什么是portanier
Docker图形化界面管理工具!提供一个后台面板供我们操作!
docker run -d -p 8088:9000 \
--restart=always -v /var/run/docker.sock:/var/run/docker.sock --privileged=true portainer/portainer
#测试,访问 http:81.69.251.9:8088