docker安裝以太坊
① 10. Docker 安裝與配置
Docker 是一個開源的應用容器引擎,基於LXC(Linux Container)內核虛擬化技術實現,提供一系列更強的功能,比如鏡像、 Dockerfile等;Docker理念是將應用及依賴包打包到一個可移植的容器中,可發布到任意Linux發行版Docker引擎上。使用沙箱機制運行高陵罩程序, 程序之間相互隔離;
容器是在linux上本機運行,並與其他容器共享主機的內核,它運行的一個獨立的進程,不佔用其他任何可執行文戚鬧件的內存,非常輕量、高效、快速。
虛擬機運行的是一個完成的操作系統,通過虛擬機管理程序對主機資源進行虛擬訪問,相比之下需要的資源更多。
參考: https://www.cnblogs.com/codingbit/p/install-docker-in-ubuntu.html
Linux版本CentOS7
使用加速器可以提升獲取Docker官方鏡像的速度,下面使用 阿里雲鏡像 進行加速。
通過修改daemon配置文件 /etc/docker/daemon.json 來使用加速器
Docker 守護進程綁定在 Unix socket 而不是 TCP 埠。默認情況下 Unix socket 歸屬於 root 用戶,其他用戶只能通過 sudo 命令訪問。所以 Docker 守護進程總是以 root 用戶來運行。
如果你不希望每次運行 docker 命令時在前面加上 sudo,你可以創建一個 docker 用戶組並把用戶加進去。當 Docker 守護進程啟動時,會創建一個 Unix socket 供 docker 用戶組成員訪問
創建 docker 用戶組並添加你的用戶
https://hub.docker.com/
什麼是 DockerHub 以及為什麼它很重要?DockerHub 是一個由 Docker 公司運行和管理的基於雲的存儲庫。它是一個在線存儲庫,Docker 鏡像可以由其他用戶發布和使用。
有兩種庫:公共存儲庫和私有存儲庫 。如果你是一家公司,你可以在你自己的組織內擁有一個私有存儲庫,而公共鏡像可以被任何人使用。
鏡像層和容器層
Docker 服務端是Docker 所有後台服務的統稱 。其中dockerd 是一個非常重要的後台管理進程,它負責響應汪伏和處理來自Docker 客戶端的請求,然後將客戶端的請求轉化為Docker 的具體操作。
例如:鏡像、容器、網路和掛載卷等具體對象的操作和管理。
Docker 從誕生到現在,服務端經歷了多次架構重構。起初,服務端的組件是全部集成在docker 二進制里。但是從 1.11 版本開始, dockerd 已經成了獨立的二進制,此時的容器也不是直接由dockerd 來啟動了,而是集成了containerd、runC 等多個組件。
雖然 Docker 的架構在不停重構,但是各個模塊的基本功能和定位並沒有變化。它和一般的 C/S 架構系統一樣,Docker 服務端模塊負責和 Docker 客戶端交互,並管理Docker 的容器、鏡像、網路等資源。
Docker 有兩個至關重要的組件: runC和containerd。
runC 是Docker 官方按照OCI 容器運行時標準的一個實現。通俗地講,runC 是一個用來運行容器的輕量級工具,是真正用來運行容器的。
containerd 是Docker 服務端的一個核心組件,它是從dockerd 中剝離出來的 ,它的誕生完全遵循OCI 標准,是容器標准化後的產物。containerd通過containerd-shim 啟動並管理runC,可以說containerd真正管理了容器的生命周期。
1. 容器中長期運行 程序
有兩種方式:
2. 容器 開啟和停止 程序
有兩種方式
3. 進入容器
有2種方法
想要web部署在互聯網上 或者 在Web上訪問 應用;
個人電腦處於 私網 中; IP地址處於 IPV4 和 IPV6 ;
安裝appium
排錯,困難
https://hub.docker.com/r/appium/appium
測試adb
改變TCPIP連接方式
查看appium運行日誌
容器埠號為 4723
開啟nginx,就可以在web訪問 192.168.0.100;
Dockerfile其實可以看做一個命令集 。每行均為一條命令。每行的第一個單詞,就是命令command。後面的字元串是該命令所要接收的參數。比如ENTRYPOINT /bin/bash。ENTRYPOINT命令的作用就是將後面的參數設置為鏡像的entrypoint。至於現有命令的含義,這里不再詳述。DockOne上有很多的介紹。
FROM 指令用於指定其後構建新鏡像所使用的基礎鏡像。FROM 指令必是 Dockerfile 文件中的首條命令,啟動構建流程後,Docker 將會基於該鏡像構建新鏡像,FROM 後的命令也會基於這個基礎鏡像。
在鏡像的構建過程中執行特定的命令,並生成一個中間鏡像。格式:
最多127層,不是寫shell ;
② 怎樣在阿里雲上安裝docker
怎樣在阿里雲上安裝docker
更多1
Linux
因為debian 7安裝docker的手續比較麻煩,所以我把阿里雲的系統換成了ubuntu 14.04,然後參考:https://docs.docker.com/installation/ubuntulinux/
還算比較方便:apt-get update && apt-get install docker.io,然後再改兩個配置就完事了。
不過,在你運行docker run -i -t ubuntu /bin/bash的時候,會報錯,說是docker -d好象沒有運行,這不科學 啊,剛剛不是裝好的嗎?
於是ps aux|grep docker,果然沒有進程,於是直接輸入:docker -d,然後就發現報錯了:
2014/08/18 12:05:42 Could not find a free IP address range for interface 'docker0'. Please configure its address manually and run 'docker -b docker0'
老規矩,內事不決問度娘,外事不決問谷歌,結果居然看到有人回復 :
當時這個心就碎了,心想這不科學啊,於是再google,就真的發現了:
OK,那就試試吧:
sudo brctl addbr docker0 # create your bridge
sudo brctl addif docker0 eth0 # mask an existing interface using the bridge
sudo ip link set dev docker0 up # bring it up - not really sure if this is necessary or is it done automatically
sudo ifconfig docker0 10.0.0.4 # give it an IP
當然要運行brctl還是要裝一個bridge-utils工具的,當然這個ubuntu會提醒你,一步步的做完後,docker 果然可以啟動了。這時候再運行一下,service docker.io start,然後ps aux|grep docker,進程還活著。
於是輸入:
docker run -i -t ubuntu /bin/bash
Unable to find image 'ubuntu' locally
Pulling repository ubuntu
2014/08/18 12:16:44 Get https://index.docker.io/v1/repositories/ubuntu/images: dial tcp: lookup index.docker.io on 10.143.22.118:53: no answer from server
咦。不能上網。其實就是上面的代碼的問題,因為默認aliyun的eth0是內網IP,所以上述的
sudo brctl addif docker0 eth0 # mask an existing interface using the bridge
這里應該用eth1
重新執行一下。然後再次運行:
docker run -i -t ubuntu /bin/bash
Unable to find image 'ubuntu' locally
Pulling repository ubuntu
c5881f11ded9: Download complete
。。。。。。。
整個就完成了
③ docker重裝
yum list installed |grep docker #查看已安裝的docker
lsb_release -a # 查看系統版本
docker version #查看舊的dockr版本
nvidia-docker version #查看舊的nvidia-docker版本
systemctl stop nvidia-docker #重裝前關閉docker
systemctl stop docker
yum remove docker-ce #卸載docker
yum remove docker-ce-cli.x86_64
yum remove containerd.io.x86_64
rm -rf /var/lib/docker #刪除鏡像汪橡、容器、配置文件等內容
yum remove nvidia-docker.x86_64 #卸載nvidia-docker
docker安裝困櫻旁步驟
nvidia-docker2官方
注意:因為是centos是redhat內核,所以按照RHEL-based distributions步驟
yum install -y nvidia-docker2 #安裝頌櫻
systemctl restart docker #重啟docker後完成
docker run -tid --gpus all --name container_name -v /home/user:/home image_id
④ ETH blockscout瀏覽器搭建(docker版本)
想在本地搭建個eth的區塊瀏覽器,用於交易、區塊等數據的查詢,找了一圈,發現都不太好用,和官方的 https://etherscan.io/ 差別太多,感覺比較low。最終發現了blockscout,很好的ui體驗,雖比不上官方的,但是也能滿足我的需求了。
http://ip:4000/
⑤ 微服務中的容器技術---Docker(一),Docker的安裝和使用
在微服凳磨系統中,因為服務特別多,如果手動部署以及啟動、重啟等工作會比較繁瑣,這里會涉及到自動化部署謹仿,自動化部署就需要用到容器技術,雖然這里基本屬於運維范疇,但是開發者還是需要了解一下,以及簡單操作使用需要會。
現在比較熱門的容器技術當然還是Docker了。關於容器和Docker的名詞解釋請網路/Google/Bing一下,解釋比較詳細,這里不過多描述。
顯示下圖,安裝完畢
查看網橋信息
默認的為:172.17.0.0/16,也可以修改上述配置文件docker.service中的ExecStart參數,添加自定義ip段,如:--bip 10.0.0.1/16,這里不作修改保持默認。
顯示如下
可以更新一下源的配置來加速
修改完記得重載、重啟
如下圖所示
※這里出現一個錯誤,因為伺服器中之前安裝過lnmp,所以啟動docker中的nginx的時候,提示80埠被佔用了,這里需要關閉原來的nginx
訪問http://192.168.0.241,顯示如下
參數說明如下:
參數說明
不同指定映射方法
容器內棗晌斗站點目錄: /usr/share/nginx/html,可以測試一下
測試一下
官方鏡像列表:
https://hub.docker.com/explore/
啟動完成後鏡像ssh連接測試
以下為nginx的dockerfile
dockerfile主要組成部分:
dockerfile常用指令:
好了,以上是Docker入門的一些日常操作,後續還有Docker容器操作的拓展內容。
⑥ 上如何安裝Docker及基本用法
docker越來越炙手可熱,如果你的團隊已經准備開始使絕差用docker,那麼私有倉庫是必不可少的東西,首先是可以幫助你加並衡皮快從伺服器pull鏡像的速度,其次也可攔漏以幫助你存放私有的鏡像,本文主要為大家介紹如何從公用伺服器上講開放的images備份到本地私...
⑦ Docker網路
Docker作為目前最火的輕量級容器技術,有很多令人稱道的功能,如Docker的鏡像管理。然而,Docker同樣有著很多不完善的地方,網路方面就是Docker比較薄弱的部分。因此,我們有必要深入了解Docker的網路知識,以滿足更高的網路需求。
安裝Docker時,它會自動創建三個網路,bridge(創建容器默認連接到此網路)、 none 、host
首先,要實現網路通信,機器需要至少一個網路介面(物理介面或虛擬介面)來收發數據包;此外,如果不同子網之間要進行通信,需要路由機制。
Docker 中的網路介面默認都是虛擬的介面。虛擬介面的優勢之一是轉發效率較高。 Linux 通過在內核中進行數據復制來實現虛擬介面之間的數據轉發,發送介面的發送緩存中的數據包被直接復制到接收介面的接收緩存中。對於本地系統和容器內系統看來就像是一個正常的以純培太網卡,只是它不需要真正同外部網路設備通信,速度要快很多。
Docker 容器網路就利用了這項技術。它在本地主機和容器內分別創建一個虛擬介面,並讓它們彼此連通(這樣的一對介面叫做 veth pair)。
創建網路參數
Docker 創建一個容器的時候,會執行如下操作:
完成這些之後,容器就可以使用 eth0 虛擬網卡來連接其他容器和其他網路。
可以在 docker run 的時候通過 --net 參數來指定容器的網路配置,有4個可選值:
當你安裝Docker時,它會自動創建三個網路。你可以使用以下docker network ls命令列出這些網路:
Docker內置這三個網路,運行容器時,你可以使用該–network標志來指定容器應連接到哪些網路。
bridge網路代表docker0所有Docker安裝中存在的網路。除非你使用該docker run --network=選項指定,否則Docker守護程序默認將容器連接到此網路。
我們在使用docker run創建Docker容器時,可以用 --net 選項指定容器的網路模式,Docker可以有以下4種網路模式:
Docker 容做賣唯器默認使用 bridge 模式的網路。其特點如下:
Host 模式並沒有為容器創建一個隔離的網路環境。而之所以稱之為host模式,是因為該模式下的 Docker 容器會和 host 宿主機共享同一個網路 namespace,故 Docker Container可以和宿主機一樣,使用宿主機的eth0,實現和外界的通信。換言之,Docker Container的 IP 地址即為宿主機 eth0 的 IP 地址。其特點包括:
Container 網路模式是 Docker 中一種較為特別的網路的模式。處於這個模式下的 Docker 容器會共享其他容器的網路環境,因此,至少這兩個容器之間不存在網路隔離,而這兩個容器又與宿主機以及除此之外其他的容器存在網路隔離。
網路模式為 none,即不為 Docker 容器構造任何網路環境。一旦Docker 容器採用了none 網路模式,那麼容器內部就只能使用loopback網路設備,不會再有其他的網路資源。Docker Container的none網路模式意味著不給該容器創建任何網路環境,容器只能使用127.0.0.1的本機網路。
自定義網路模式,docker提供了三種自定義網路驅動:
bridge驅動類似默認的bridge網路模式,但增加了一些新的功能,overlay和macvlan是用於創建跨主機網路。
建議使用自定義網橋來控制容器之間的相互通訊,配褲還可以自動DNS解析容器名稱到ip地址。Docker提供了創建這些網路的默認網路驅動程序,你可以創建一個新的Bridge網路,Overlay或Macvlan網路,你可以創建一個網路插件或遠程網路進行完善的自定義和控制。
你可以根據需要創建任意數量的網路,並且可以在任何給定的時間將容器連接到這些網路中的零個或多個網路。此外,您可以連接並斷開網路中的容器,而無需重新啟動容器,當容器連接到多個網路時,其外部連接通過第一個非內部網路以詞法順序提供。
接下來介紹Docker的內置網路驅動程序。
使用自定義網路啟動容器
自定義網路好處:
參考:
https://blog.51cto.com/u_13362895/2130375
https://blog.csdn.net/meltsnow/article/details/94490994
https://blog.csdn.net/weixin_41842682/article/details/90417959
⑧ 【4.4】伺服器安裝 Docker中安裝與配置 Portainer
截止到22年04月01日為止
portainer 官網提供版讓兆消本 2.9.3
https://docs.portainer.io/v/ce-2.11/start/install/server/docker/linux
新裝的docker如果docker run 任何都失敗,記得試試關閉防火牆,然後重啟docker試試,猜和 systemctl restart docker
更多方法請參考官方網站教程坦知
https://docs.portainer.io/v/ce-2.11/start/install/server
歷史原因portainer 保留了9000的埠,最近的埠是8000.ssl埠9443
進入 9000埠網站需要先設置賬戶密碼
登錄後就是這個樣子的
點波關注 系統搭建(docker)
⑨ Ubuntu Docker 安裝和使用
Docker 劃分為CE 和EE。CE 即社區版(免費,支持周期三個月),EE 即企業版,強調安全,付費使用。
在Ubuntu系統中安裝較為簡單,官方提供了腳本供我們進行安裝。
執行這個命令後,腳本就會自動的將一切准備工作做好,並且把Docker CE 的Edge版本安裝在系統中。
啟動Docker CE
建立docker 用戶組
默認情況下,docker 命令會使用Unix socket 與Docker 引擎通訊。而只有root 用戶和docker 組的用戶才可以訪問Docker 引擎的Unix socket。出於安全考慮,一般Ubuntu系統上不會直接使用root 用戶。因此,更好地做法是將需要使用docker 的用戶加入docker用戶組。
注銷當前用戶,重新登錄Ubuntu,輸入遲歲核docker info,此時可以直接出現信息。
配置國內鏡像加速
在/etc/docker/daemon.json 中寫入如下內容(如果文件不存在請新建該文件)
重新啟動服務
測試
我們通過 docker 的兩個參數 -i -t,讓 docker 運行的容器實現"對話"的能力:
各個參數解析:
-t: 在新容器內指雀拆定一個偽終端或終端。碼掘
-i: 允許你對容器內的標准輸入 (STDIN) 進行交互。
我們可以通過運行 exit 命令或者使用 CTRL+D 來退出容器。
使用以下命令創建一個以進程方式運行的容器
二、使用Docker安裝 MySQL
用 docker search mysql 命令來查看可用版本:
2、拉取 MySQL 鏡像
這里我們拉取官方的最新版本的鏡像:
3、查看本地鏡像
使用以下命令來查看是否已安裝了 mysql:
4、運行容器
安裝完成後,我們可以使用以下命令來運行 mysql 容器:
大小寫敏感
參數說明:
-p 3306:3306 :映射容器服務的 3306 埠到宿主機的 3306 埠,外部主機可以直接通過 宿主機ip:3306 訪問到 MySQL 的服務。
MYSQL_ROOT_PASSWORD=123456:設置 MySQL 服務 root 用戶的密碼。
使用docker exec進入Docker容器
從容器裡面拷文件到宿主機
docker cp mysql-5.7:/etc/mysql/ /home
從宿主機拷文件到容器裡面
docker cp /home/s/my.cnf mysql-5.7:/etc/mysql/
大小寫敏感修改
/etc/my.cnf 中的[mysqld]後添加添加lower_case_table_names=1,重啟MYSQL服務 0敏感 1不敏感
開啟遠程連接
5、安裝成功
通過 docker ps 命令查看是否安裝成功:
6、連接
mysql -u root -P3308 -h 127.0.0.1 -p
⑩ centos下docker方式安裝onlyoffice
環境:
Server:CentOS7
IP:172.16.5.200
WebServer:nginx
如果埠無法訪問,關閉伺服器防火牆
訪問 http://172.16.5.200:9993/welcome/ (上述埠鎮亮映射到9993)
創建index.html,保存到伺服器/home路徑下,並添加test.docx到/home/office
其中的api.js腳本地址為onlyoffice文檔伺服器地址,文檔路徑為CentOS中word文件地址(配合nginx)。
nginx配置御山寬唯喊如下:
訪問 http://172.16.5.200:9990/