安装docker
参考资料:
- https://docs.docker.com/engine/install/ubuntu/
- https://www.runoob.com/docker/ubuntu-docker-install.html
- 一键部署脚本的源代码在 docker-install 仓库中。 不建议在生产环境中使用这些脚本 https://get.docker.com/
- https://www.wbolt.com/install-docker-ubuntu.html
- 一键部署脚本
shell
curl -fsSL https://get.docker.com -o get-docker.sh
#以root权限运行脚本
sudo sh get-docker.sh
Executing docker install script
curl -fsSL https://get.docker.com -o get-docker.sh
#以root权限运行脚本
sudo sh get-docker.sh
Executing docker install script
- 更新ubuntu系统的软件包、安装apt依赖shell
# Add Docker's official GPG key: sudo apt-get update sudo apt-get install ca-certificates curl gnupg sudo install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg sudo chmod a+r /etc/apt/keyrings/docker.gpg # Add the repository to Apt sources: echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt-get update
# Add Docker's official GPG key: sudo apt-get update sudo apt-get install ca-certificates curl gnupg sudo install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg sudo chmod a+r /etc/apt/keyrings/docker.gpg # Add the repository to Apt sources: echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt-get update
- 安装最新的docker版本shell
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
- 检测docker是否安装成功
sudo systemctl status docker
sudo systemctl status docker
配置docker的网络代理
因为地图数据服务器在外网,下载得特别慢,需要配置代理
TIPS:
- 如果是需要通过 本机(windows)主机 -> 使用ssh连接本地局域网的linux主机 -> 再进入docker的容器,来连接网络代理的话,可以先去容器里试试直接ping(windows)主机,如果能ping通,就直接配置局域网里的ip就行
- 如果要连接使用 (windows)主机的网络代理,记得把window的局域网防火墙关掉,不然也用不了
参考资料:
- https://www.cnblogs.com/abc1069/p/17496240.html
- https://www.zdkteam.com/archives/docker-rong-qi-nei-shi-yong-su-zhu-ji-de-dai-li-pei-zhi
- https://docs.docker.com/network/proxy/#use-environment-variables
- https://kebingzao.com/2019/02/22/docker-container-proxy/
- https://neucrack.com/p/286
- https://blog.csdn.net/lxr1908/article/details/132487243
- https://cn.linux-console.net/?p=21489
设置宿主机(本机)的docker国内镜像
shell#在/etc/docker/daemon.json文件中加入 # 国内有些镜像的源已经失效,这些是暂时还可以使用的镜像 { "registry-mirrors": [ "https://registry.hub.docker.com", "http://hub-mirror.c.163.com", "https://mirror.baidubce.com", "https://docker.mirrors.sjtug.sjtu.edu.cn", "https://docker.nju.edu.cn" ] }
#在/etc/docker/daemon.json文件中加入 # 国内有些镜像的源已经失效,这些是暂时还可以使用的镜像 { "registry-mirrors": [ "https://registry.hub.docker.com", "http://hub-mirror.c.163.com", "https://mirror.baidubce.com", "https://docker.mirrors.sjtug.sjtu.edu.cn", "https://docker.nju.edu.cn" ] }
设置docker中容器的代理服务器
shell# vi ~/.docker/config.json (没有的话就创建这个路径和文件,代理服务器需要替换成自己搭建的vpn地址 # 先试试容器里ping代理的网络通不通,再根据具体情况配置 { "proxies": { "default": { "httpProxy": "http://example.com:port", "httpsProxy": "http://example.com:port", "noProxy": "localhost,127.0.0.1,.daocloud.io" } } }
# vi ~/.docker/config.json (没有的话就创建这个路径和文件,代理服务器需要替换成自己搭建的vpn地址 # 先试试容器里ping代理的网络通不通,再根据具体情况配置 { "proxies": { "default": { "httpProxy": "http://example.com:port", "httpsProxy": "http://example.com:port", "noProxy": "localhost,127.0.0.1,.daocloud.io" } } }
安装osm离线地图服务(openstreetmap-tile-server)
参考资料:
下载地图osm.pbf文件
shellwget https://download.geofabrik.de/africa/zambia-latest.osm.pbf
wget https://download.geofabrik.de/africa/zambia-latest.osm.pbf
创建docker的volume
shelldocker volume create osm-data
docker volume create osm-data
下载docker镜像和挂载地图资源文件
shelldocker run \ --name osm_server -v {替换成本机的文件路径}/{文件名}.osm.pbf:/data/region.osm.pbf \ -v osm-data:/data/database/ \ overv/openstreetmap-tile-server \ import
docker run \ --name osm_server -v {替换成本机的文件路径}/{文件名}.osm.pbf:/data/region.osm.pbf \ -v osm-data:/data/database/ \ overv/openstreetmap-tile-server \ import
使用docker启动osm服务 --name 参数指定之后每次启动的服务器就是同一个,如果根据官方的指令运行,没有name,每次掉了容器启动的都是新的,要重新挂载之类的,耗时耗性能
shelldocker run --name osm_server -p 8080:80 -v osm-data:/data/database -d overv/openstreetmap-tile-server run
docker run --name osm_server -p 8080:80 -v osm-data:/data/database -d overv/openstreetmap-tile-server run
查看服务器是否部署成功
shellhttp://your.server.ip.address:8080 http://your.server.ip.address:8080/tile/0/0/0.png
http://your.server.ip.address:8080 http://your.server.ip.address:8080/tile/0/0/0.png
地图数据源:
https://download.openstreetmap.fr/extracts/asia/china/