1,安裝 dockerhtml
yum install docker
使用Docker 中國加速器nginx
vim /etc/docker/daemon.json
添加下面代碼 web
{ "registry-mirrors": ["https://registry.docker-cn.com"], "live-restore": true }
(這個文件 初始狀態是空的 只有「{}」)docker
啓動服務json
systemctl start docker
systemctl restart docker --重啓
systemctl stop docker --中止 vim
查看版本centos
docker version
查看狀態瀏覽器
service docker status
2,安裝nginxruby
配置Nginx最新源bash
vim /etc/yum.repos.d/nginx.repo
添加下列內容
[nginx] name=nginx repo baseurl=http://nginx.org/packages/centos/7/$basearch/ gpgcheck=0 enabled=1
執行安裝
yum install nginx
啓動服務
systemctl start nginx
systemctl restart nginx --重啓
systemctl stop nginx --中止
啥也不顯示錶示正常啓動,如顯示
表示啓動出錯,看這裏解決 http://www.javashuo.com/article/p-mtsgyhhf-eo.html
輸入http://服務器IP/ 若是能看到nginx的界面,就表示安裝成功了
3,把項目推送到docker hub
須要先執行 docker login 登陸到 docker hub
docker push ejiyuan/demo-docker
命令後面的 image tag 必須是 docker hub 用戶名 + 「/」 + 項目名稱形式,若是「/」與當前登陸的用戶名不對應 會提示沒有權限
Error response from daemon: pull access denied for io/webapp, repository does not exist or may require 'docker login'
你能夠使用下列命令修改鏡像tag名稱後再進行推送
docker tag io/webapp ejiyuan/webapp
4,從docker hub 中拉取 項目 docker image
在你須要部署的服務上安裝docker 先執行 docker login 登陸到 docker hub 而後執行下列命令拉取鏡像到你的服務器上
docker pull ejiyuan/demo-docker
docker pull [image 名稱]
5,啓動 docker運行鏡像服務
查看鏡像文件
運行鏡像到容器中:
docker run -p 127.0.0.1:9000:8080 -t docker.io/ejiyuan/demo-docker
docker之進入啓動容器查看目錄結構:docker exec -it containerID /bin/bash 或 docker exec -it containerID /bin/sh
這裏我不想將9000端口暴露給外網(全部請求都從nginx,映射過來,也就是僅對往外開放80端口)全部限定ip:127.0.0.1,若是你既想實現經過指定域名訪問,又想經過外部 「ip+端口」 訪問,這裏去掉127.0.0.0便可
檢查是否正常運行:
方法1,使用curl透一下:
個人默認控制器會返回 hello Docker World
方法2,檢查服務運行狀態
方法3,使用 docker ps命令查看運行的容器
6,配置nginx:
vim /etc/nginx/nginx.conf
修改或添加一個server標籤
server { listen 80 default_server; listen [::]:80 default_server; server_name _; root /usr/share/nginx/html; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location / { } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } } #下面是自定義配置 端口轉發 server { listen 80; server_name www.abc.com;# 這裏配置咱們的域名,肯定域名已解析到本機 location / { proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://127.0.0.1:9000; #轉發到本機9000端口 } }
重啓nginx:
systemctl restart nginx
在瀏覽器訪問你的域名 www.abc.com
查看 docker項目容器運行日誌
7,參考文檔
在Docker容器環境中用Let's Encrypt部署HTTPS