Docker入門與superset、Shipyard、gitlab安裝

經過幾年的熱炒,docker的神祕面紗已經漸漸褪去,現在已經被越來越多的業界人士所熟知並應用到實踐中。原來我也以爲docker入門很複雜很難上手,但經過近兩天的琢磨並親手搭建嘗試,終於體會到了docker的強大已及易用性,現在通過簡單的安裝及操作,使大家認識docker。

STEP1.首先按裝虛擬機並給虛擬機安裝系統。
用workstation也好,VMware虛擬機也罷,提前做好純淨的鏡像,方便出錯後可以快速還原回滾。
查看虛擬機系統版本,我用的是Centos 7.4系統.查看系統版本,網上說3.10版本以上可用。

STEP2.下載並安裝yum源更新文件。
我這裏用的是清華大學TUNA協會提供的鏡像源。請按以下步驟操作完成docker系統安裝.
wget https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo
yum repolist

STEP3.安裝並啓動docker服務。
yum -y install docker

解決依賴關係,等待安裝完成。

啓動docker服務,
service docker start
將docker服務加入開機自啓動。
chkconfig docker on

查看版本,並獲取最新版的Centos鏡像文件,
docker version

Docker集中化WEB管理工具Shipyard安裝
Docker常用的圖形頁面管理工具有三種: DOCKER UI,Shipyard,Portainer。這裏我們簡單按裝下Shipyard。
Step1.首先確保docker環境已經安裝好,我們直接下載腳本式一鍵安裝的方法,當然也可以用docker單獨將應用包拉下來在裝。主要需下載的包有:

Step2.修改shipyard默認web訪問端口(很重要),操作如下:
cat shipyard-deploy |grep 8080
比如將腳本中默認的8080端口改爲8888端口:

注意:如果容器中8080端口已被其它程序佔用,那麼安裝會失敗,需要逐條停止後卸載。
我之前上面跑着tomcat,端口號是8080,安裝時因端口被佔用而報錯。

停止、卸載,
停止容器:docker stop CONTAINER ID

刪除卸載Shipyard環境操作:cat shipyard-deploy |ACTION=remove bash

Step3.下載腳本並部署安裝
腳本下載鏈接:https://pan.baidu.com/s/1OY5J017a0oRcrQVZOdJj4A
上傳到服務器後給予可執行權限,chmod 755 shipyard-deploy(腳本名)
或chmod +x shipyard-deploy,接着執行一鍵部署安裝操作。
sh shipyard-deploy

Step4.瀏覽器訪問http://192.168.0.176:8888

Docker集羣管理(一)—— 基礎docker+swarm+shipyard
1.在任意的docker節點創建一個全世界唯一的token(集羣ID)2d94af21b49ee263d0fe6a6ffb270484
docker run --rm swarm create

啓動swarm manger
docker run -ti -d -p 2376:2375 --restart=always --name shipyard-swarm-manager swarm:latest manage --host tcp://0.0.0.0:2375 token://2d94af21b49ee263d0fe6a6ffb270484
參考鏈接:
https://www.cnblogs.com/kevingrace/p/6867820.html
http://www.runoob.com/docker/docker-start-stop-restart-command.html

STEP4.docker通過鏡像庫下載所需文件
使用docker search XXX 查詢你需要的鏡像包

通過docker pull XXX 下載你需要的鏡像包,需要注意的是下載時必須根據鏡像庫裏文件的路徑,以docker.io/tomcat爲例,docker.io後面爲包名,如中間還有目錄,需在下載時使用目錄路徑。如查詢到的目錄爲docker.io/primetoninc/jdk時,下載時應該使用docker pull primetoninc/jdk進行下載。

STEP5.查看容器中有哪些鏡像文件,使用docker images命令。

STEP6.啓動並運行一個tomcat。
docker run -p 8080:8080 docker.io/tomcat(容器和主機的映射端口 前者是外圍訪問端口:後者是容器內部端口)此種方法啓動後退出再啓動會報錯,重啓宿主虛擬機後在用下面方法啓動時成功了。
或者docker run -d -p 8080:8080 168588387c68

STEP7.啓動後通過瀏覽器訪問192.168.0.176:8080,176爲我在vmware上的虛擬宿主機IP。

STEP8.使用docker來安裝superset,其實就是在docker上運行centos7來安裝superset
獲取最新Centos
docker pull centos
啓動Centos容器並查看對應版本。
docker run -i -t centos /bin/bash

STEP9.安裝相關依賴包、pip及虛擬環境包
yum upgrade python-setuptools
yum -y install gcc gcc-c++ libffi-devel python-devel python-pip python-wheel openssl-devel libsasl2-devel openldap-devel
yum -y install epel-release
yum -y install python-pip
pip install --upgrade pip

pip install virtualenv

STEP10.安裝pip更新工具包及psycopg2-binary
pip install --upgrade setuptools pip
pip install psycopg2-binary
pip install scrapy

STEP11.pip方式安裝superset
pip install superset

在此產生錯誤,請注意python版本號,推薦使用python3以上的。出現錯誤之後我是將鏡像下載下來再用容器方法啓動後實現的。
STEP12.容器鏡像啓動superset服務
docker run --restart=always -d -p 8088:8088 3d9d5176fc33(IMAGE ID)

STEP13.初始化superset並啓動,用戶密碼 admin/123456
docker exec -it 73e2d17a6727(CONTAINER ID) fabmanager create-admin --app superset

瀏覽器訪問http://192.168.0.176:8088/login/

STEP14.加載默認數據到sqlite數據庫中進行展示
root@ea2135e97167:/var/lib/superset# superset load_examples
(此處可以通過shipyard控制檯進入,也可命令行容器內操作)
Loading examples into <SQLA engine=sqlite:////var/lib/superset/superset.db>
Creating default CSS templates
Loading energy related dataset
Creating table [wb_health_population] reference
2019-03-01 17:17:51,673:INFO:root:Creating database reference
2019-03-01 17:17:51,778:INFO:root:Database.get_sqla_engine(). Masked URL: sqlite:////var/lib/superset/superset.db
Loading [World Bank's Health Nutrition and Population Stats]

Creating table [wb_health_population] reference
2019-03-01 17:18:08,751:INFO:root:Creating database reference
Creating slices
Creating a World's Health Bank dashboard
Loading [Birth names]
Done loading table!


Creating table [birth_names] reference
2019-03-01 17:18:13,899:INFO:root:Creating database reference
Creating some slices
Creating a dashboard
Loading [Random time series data]
Done loading table!
2019-03-01 17:18:55,158:INFO:root:Creating database reference
Done loading table!
Loading [BART lines]
Creating table bart_lines reference
2019-03-01 17:18:55,544:INFO:root:Creating database reference
Loading [Multi Line]
Creating table [wb_health_population] reference
2019-03-01 17:19:13,392:INFO:root:Creating database reference
Creating slices
Creating a World's Health Bank dashboard
Done loading table!


Creating table [birth_names] reference
2019-03-01 17:19:17,501:INFO:root:Creating database reference
Creating some slices
Creating a dashboard
Loading [Misc Charts] dashboard
Creating the dashboard
Loading DECK.gl demo
Loading deck.gl dashboard
Creating Scatterplot slice
Creating Screen Grid slice
Creating Hex slice
Creating Grid slice
Creating Polygon slice
Creating Arc slice
Creating Path slice
Creating a dashboard
訪問儀表盤:http://192.168.0.176:8088/superset/dashboard/MDboards/

參考學習網站:
https://www.jianshu.com/p/e1d3e25abcba
https://www.jianshu.com/p/d5978b439080
http://www.runoob.com/docker/docker-command-manual.html

使用docker搭建gitlab版本控制系統
(1)拉取Gitlat鏡像
docker pull gitlab/gitlab-ce
鏡像拉取報錯處理
error pulling image configuration: Get https://production.cloudflare.docker.com/registry-v2/docker/registry/v2/blobs/sha256/18/18da462b5ff5ae77adbca3a5a522cd8c2c9172d8dc168caf42edc6a8684890c0/data?verify=1552880300-1ur28woKlLl%2FbnW03%2FesamlQZik%3D: dial tcp 104.18.122.25:443: i/o timeout
由於無法連接到docker hub,優先使用:
echo "DOCKER_OPTS=\"\$DOCKER_OPTS --registry-mirror=http://f2d6cb40.m.daocloud.io\"" | sudo tee -a /etc/default/docker
service docker restart
docker pull registry
解決!
1.鑑於國內網絡問題,後續拉取 Docker 鏡像十分緩慢,需要配置加速器來解決,可以使用的是網易的鏡像地址:http://hub-mirror.c.163.com
新版的 Docker 使用 /etc/docker/daemon.json(Linux) 或者 %programdata%\docker\config\daemon.json(Windows) 來配置 Daemon。

請在該配置文件中加入(沒有該文件的話,請先建一個):
{
"registry-mirrors": ["http://hub-mirror.c.163.com"]
}
具體過程:
vim /etc/docker/daemon.json
若因權限無法修改,加上sudo,即sudo vim /etc/docker/daemon.json,保存並退出後,重新運行docker run hello-world
成功!
2.可以找到 Docker 配置文件,一般配置文件在/etc/default/docker目錄下,
sudo vim /etc/default/docker
然後,插入以下內容
DOCKER_OPTS="$DOCKER_OPTS --registry-mirror=http://hub-mirror.c.163.com"

(2)從gitlab鏡像啓動容器
英文企業版:docker run -d -h gitlab -p 443:443 -p 80:80 -p 2222:22 --name gitlab --restart always -v /root/data/gitlab/config:/etc/gitlab -v /root/data/gitlab/logs:/var/log/gitlab -v /root/data/gitlab/data:/var/opt/gitlab docker.io/gitlab/gitlab-ce
中文社區版:docker run -d -h gitlab -p 4433:4433 -p 800:800 -p 2222:22 --name gitlab --restart always -v /root/data/gitlab/config:/etc/gitlab -v /root/data/gitlab/logs:/var/log/gitlab -v /root/data/gitlab/data:/var/opt/gitlab docker.io/twang2218/gitlab-ce-zh
說明:
-d 後臺啓動
-h hostname
-p 容器的端口映射
--name 容器的名字
--restart always 當容器退出或宿主機重啓的時候,容器接着會始終重啓
-v 給容器添加一個數據卷
(3)修改gitlab容器的配置文件
docker exec -it gitlab
vi /etc/gitlab/gitlab.rb
修改爲服務器的ip地址:
13 external_url 'http://192.168.0.176'
然後重啓容器gitlab
docker restart gitlab
初始化gitlab密碼
docker exec -it df8198f2f826 /bin/bash
gitlab-rails console production
在irb(main):001:0> 後面通過 u=User.where(id:1).first 來查找與切換賬號(User.all 可以查看所有用戶)
通過u.password='12345678'設置密碼爲12345678(這裏的密碼看自己喜歡)
通過u.password_confirmation='12345678' 再次確認密碼
通過 u.save!進行保存(切記切記 後面的 !)
如果看到上面截圖中的true ,恭喜你已經成功了,執行 exit 退出當前設置流程即可。

(4)訪問gitab http://192.168.0.176

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章