導航:首頁 > 配伺服器 > 阿里雲伺服器怎麼配置docker

阿里雲伺服器怎麼配置docker

發布時間:2022-10-03 05:38:54

① 如何在阿里雲主機上安裝docker

如何使用注冊阿里雲帳號,選擇購買您需要的cdn套餐登錄阿里雲管理控制台進行cdn服務管理,如:添加域名或bucket進行加速,您還可以通過api來管理添加域名加速後,您將得到一個cdn的域名解析服務的域名在您的dns服務商的配置服務中

② 阿里雲伺服器ecs怎麼重新配置環境

由於Web網站需要搭建測試模板使用,會造成網站建設環境混亂。需要重置ECS伺服器系統的狀態,將ECS伺服器恢復到未安裝Web網站時的狀態。

1、登錄雲服務管理控制台,選擇雲服務ECS,單擊實例,進入實例頁面。

2、在實例列表頁面,選擇更多磁碟和鏡像,單擊「更換系統盤」或 「重新初始化磁碟」, 將ECS伺服器重置為初始狀態。

③ 阿里雲 上的docker 怎麼用

包括三部分:
從Docker Hub或者其他鏡像源安裝Docker鏡像
從Image file安裝Docker鏡像
從Docker file製作Docker鏡像

查找Docker鏡像

安裝Docker鏡像的第一步,是查找你需要的Docker鏡像列表,鍵入:
docker search mysql

如果出現許可權問題,請在最前面加入sudo:
sudo docker search mysql

查詢返回一個列表:
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relati... 2981 [OK]
mysql/mysql-server Optimized MySQL Server Docker images. Crea... 194 [OK]
centurylink/mysql Image containing mysql. Optimized to be li... 46 [OK]
sameersbn/mysql 36 [OK]
jdeathe/centos-ssh-mysql CentOS-6 6.8 x86_64 / MySQL. 8 [OK]
appcontainers/mysql Centos/Debian Based Customizable MySQL Con... 8 [OK]
marvambass/mysql MySQL Server based on Ubuntu 14.04 6 [OK]
drupaldocker/mysql MySQL for Drupal 2 [OK]
azukiapp/mysql Docker image to run MySQL by Azuki - http:... 2 [OK]
yfix/mysql Yfix docker built mysql 2 [OK]
alterway/mysql Docker Mysql 2 [OK]
frodenas/mysql A Docker Image for MySQL 2 [OK]
andreluiznsilva/mysql A extension of the offical MySQL container... 1 [OK]
phpmentors/mysql MySQL server image 1 [OK]
sin30/mysql MySQL images with my own config files. 1 [OK]
tozd/mysql MySQL (MariaDB fork) Docker image. 0 [OK]
nanobox/mysql MySQL service for nanobox.io 0 [OK]
...

列表包含了所有的MySQL鏡像,其中:
NAME欄位是鏡像的名字
DESCRIPTION欄位是對鏡像的簡單描述
STARS數量反映了用戶的喜愛程度
OFFICIAL欄位如果是OK,代表了這個鏡像是官方提供的,可以信任
AUTOMATED欄位如果是OK,代表了這個鏡像是基於公開的腳本製作的,可以信任
如果OFFICIAL和AUTOMATED都不為OK,那使用的時候需要額外小心了,這類鏡像中可能包含惡意軟體,不過對於個人非敏感數據還是可以使用的。

此外,你也可以通過訪問https://hub.docker.com/,通過Web來搜索你需要的鏡像。
下載Docker鏡像

當你找到合適的鏡像後,可以通過:
docker pull [REGISTRYHOST/][USERNAME/]NAME[:TAG]

來進行下載,方括弧中的是可選項:
docker pull mysql

導出Docker鏡像

你可以將本地鏡像導出為文件,如我們剛才下載的MySQL鏡像:
docker save -o mysql.tar mysql

將我們的MySQL鏡像導出為mysql.tar.
導入Docker鏡像

有導出就有導入,導入的命令是:
docker load -i mysql.tar

將我們的MySQL鏡像導入。
刪除Docker鏡像

為了節約磁碟空間,有時候我們需要刪除不需要的Docker鏡像文件,首先查看我們擁有的Docker鏡像文件:
docker images

然後刪除不需要的鏡像,釋放磁碟空間:
docker rmi [REGISTRYHOST/][USERNAME/]NAME[:TAG]

通過Docker File編譯Docker鏡像

製作Docker File我們放在後面再講,假設你有一個名為Dockerfile的文件,編譯製作Docker的命令是:
docker build -f Dockerfile .

成功後將在當前路徑下製作出一個Docker鏡像文件。
Summary

我們簡單的介紹了Docker鏡像的使用方法。通過此實戰,你應該對Docker鏡像有了更深入的體會。
以上是雲棲社區小編為您精心准備的的內容,在雲棲社區的博客、問答、公眾號、人物、課程等欄目也有的相關內容,歡迎繼續使用右上角搜索按鈕進行搜索docker , 鏡像 , docker使用鏡像 , 刪除鏡像 查找鏡像 docker 刪除鏡像、docker 鏡像、docker 國內鏡像倉庫、docker hub 國內鏡像、docker 鏡像倉庫,以便於您獲取更多的相關知識。

④ 如何在阿里雲主機上安裝docker

你好,
如果你是centos7的話,Docker 軟體包已經包括在默認的 CentOS-Extras 軟體源里。因此想要安裝 docker,只需要運行下面的 yum 命令:

[[email protected] ~]# yum install docker

⑤ RabbitMQ 進階- 阿里雲伺服器部署RabbitMQ集群

如果RabbitMQ集群只有一個broker節點,那麼該節點的失效將導致整個服務臨時性的不可用,並且可能會導致message的丟失(尤其是在非持久化message存儲於非持久化queue中的時候)。可以將所有message都設置為持久化,並且使用持久化的queue,但是這樣仍然無法避免由於緩存導致的問題:因為message在發送之後和被寫入磁碟並執行fsync之間存在一個雖然短暫但是會產生問題的時間窗。通過publisher的confirm機制能夠確保客戶端知道哪些message已經存入磁碟,盡管如此,一般不希望遇到因單點故障導致服務不可用。

如果RabbitMQ集群是由多個broker節點構成的,那麼從服務的整體可用性上來講,該集群對於單點失效是有彈性的,但是同時也需要注意:盡管exchange和binding能夠在單點失效問題上倖免於難,但是queue和其上持有的message卻不行,這是因為queue及其內容僅僅存儲於單個節點之上,所以一個節點的失效表現為其對應的queue不可用。

為了提高程序的吞吐量,保持消息的可靠性,一台機器掛了後,RabbitMQ能夠正常生產,消費消息。

rabbitmq有三種模式:單機模式,普通集群模式,鏡像集群模式

Demo級別的,一般只是本機測試玩玩而已,生產環境下不會用的。

在多台機器上啟動多個rabbitmq實例,每個機器啟動一個。
但是你創建的queue,只會放在一個rabbtimq實例上,但是每個實例都同步queue的元數據(存放含queue數據的真正實例位置)。消費的時候,實際上如果連接到了另外一個實例,那麼那個實例會從queue所在實例上拉取數據過來。

示意圖

這種方式確實很麻煩,也不怎麼好,沒做到所謂的分布式,就是個普通集群。
普通集群的方式,確實達到了消息的高可用,但沒辦法保證可靠性,沒做到分布式,簡而言之,只是一個普通的集群。

這種模式,才是所謂的rabbitmq的高可用模式,跟普通集群模式不一樣的是,你創建的queue,無論元數據還是queue里的消息都會存在於多個實例上,然後每次你寫消息到queue的時候,都會自動把消息到多個實例的queue里進行消息同步。

上圖中每個節點有一個queue,生產者生產完畢數據後投遞到指定交換機的隊列,交換機的隊列進行消息同步。

每個節點queue都有一個完整的rabbitmq節點,所以這種方式叫做鏡像集群

好處: 任何一個節點宕機後,其它節點不受影響,正常使用

壞處:

確保機器中安裝了Docker,若未安裝,可看:【雲原生】Docker入門 – 阿里雲伺服器linux環境下安裝Docker

查看拉取的鏡像

成功運行

設置節點1

瀏覽器輸入 您的ip地址:15673

再次測試即可成功~

File —> New —> Project —> Maven —> 直接Next 進入下一步創建普通的Maven工程即可

創建一個默認的Maven聚合工程,將src文件夾刪除,該工程就是一個Maven聚合工程

引入依賴如下:

在項目內,新建一個Moudle,rabbitmq-order-procer 默認Maven工程,下一步即可

在項目內,新建一個Moudle,rabbitmq-order-cousumer 默認Maven工程,下一步即可

Maven聚合工程創建完成圖

Maven依賴圖

自行手寫MainApplication即可

創建完成!

編寫完成!

啟動消費者

交換機

=

15674

15675

成功消費數據!

已成功同步消息~

⑥ docker swarm網路問題

docker主機內部網路正常,與其它主機的連接失效,其它主機不能連接docker主機上映射的埠,docker內部也無法連接外部主機。

添加配置

執行 sysctl -p 生效

再次查看docker info,警告消失,主機上的docker網路恢復正常。

我所使用的伺服器是阿里雲伺服器
如果你的集群使用的默認埠4789,那麼你可能遇到跟我一樣的問題。

阿里雲的幫助文檔中有這樣一句話:

在19.03及之後的版本,docker在swarm init之上增加了–data-path-port uint32 的配置項用於更改docker swarm的VXLAN埠。
修改埠之後成功解決問題

查看docker日誌(journalctl -u docker -n 20 -f )發現 :

出現這個原因是因為宿主機沒有載入ip_vs模塊。在各個節點載入ip_vs模塊後重啟docker即可。

⑦ 怎樣在阿里雲上安裝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部署GitLab

查看是否拉取成功

編寫內容

在該文件目錄下,授予 gitlab_start.sh 執行許可權

要注意埠是否被佔用

修改 gitlab_start.sh 文件,將映射到宿主機的埠改為 8088 ,或者其它沒被佔用的埠

重新運行 ./gitlab_start.sh 文件,報錯如下

這是因為之前的容器雖然沒有運行起來,但是已經創建了,把它刪除掉

重新運行 gitlab_start.sh 文件

可以看到容器成功啟動

創建 docker-compose.yml 文件,並在該文件所在的文件夾目錄下運行 docker-compose up -d
需要事先安裝 docker-compose
安裝docker-compose

:埠和映射目錄可根據需要修改

若開放訪問埠為 80 , external_url 可不加埠號,默認80

若以 3.1 方法創建,需要修改相關配置文件

在Gitlab容器 運行狀態 時,重啟服務,並遠程訪問網站測試

*若訪問Gitlab出現502等錯誤,使用命令檢查錯誤原因

e.g.

查看上述配置文件,查找錯誤原因

[圖片上傳失敗...(image-e9789-1636370071222)]

雖然容器啟動成功,但是卻沒辦法根據 ip:port 訪問gitlab

拉取tomcat鏡像

為了測試8088埠是否可用,先把gitlab的容器暫停

啟動tomcat容器,並將tomcat容器的8080埠映射到宿主機的8088埠

一切正常,訪問ip:8088,還是和以前一樣訪問不了

因為之前系統的防火牆一直是關閉的並且其它的服務能正常訪問,所以沒有懷疑是防火牆的問題

把防火牆打開

訪問之前能正常訪問的服務,果然沒法正常訪問。

把該服務的埠開發,正常訪問。

打開8088埠

再次訪問

返回tomcat的404頁面: HTTP Status 404 – Not Found

雖然是404頁面,但是說明此時的埠是能正常訪問的

把tomcat的容器停止運行,重新運行gitlab容器

雖然沒啟動成功,但離成功更進一步了:)

嘗試把這個容器刪除掉,再創建一次後還是得到這個錯誤。

還是訪問不了,檢查一下GitLab內部是否有問題

一切正常

我再次換成tomcat容器進行測試,發現8088埠訪問不了了。

但是在宿主機內ping本機是可以的

但是,換成 ip:8088 則不行

根據以上兩篇文章,提出 阿里雲的內網eth0 網段正好跟Docker 的虛擬網卡都是 172 網段,有沖突

觀察發現我使用的雲伺服器也是阿里雲,並且通過 ifconfig 查看

並且查看阿里雲的內網ip確實也是 172 開頭。

編輯配置文件 /etc/docker/daemon.json ,若 daemon.json 文件不存在新建即可。

重新啟動docker服務

可以看到docker0 的地址變了。

但是要注意,使用 docker 啟動的服務會默認使用 docker0 ,如果是用 docker-compose 啟動的服務則不會。上面的 br-12aa369ee4a6 對應的是docker-compose啟動的服務,可以看到還是172的網段。

docker-compose up使用自定義的網段的兩種方式(從其根源指定)

根據該文使用方法2,即修改 daemon.json 。但並不能成功訪問,我的環境是: docker:20.10.7 , docker-compose:1.24.1

後面發現訪問不成功的原因在於 docker 與防火牆之間的關系,可以關掉防火牆,開啟 docker ,不能訪問則打開防火牆。在它們之間來回試探 = =。
後面嘗試過關閉 firewalld ,打開 iptables

在啟用 iptables 時,一般關掉 iptables 可以正常訪問,打開則不能正常訪問。
在啟用 firewalld 時,按照 docker firewalld 之間啟動關閉的順序不同,有時是開著防火牆能訪問,有時是關了防火牆能訪問。

但是容器內不能訪問外部網路,該問題現在還未解決。 有一種迂迴的解決方法就是容器使用 host 網路模式

問題 :懷疑是docker,firewalld與iptables之間的設置問題

Docker與IPtables

docker 埠映射 及外部無法訪問問題

Docker and IPtables

還有一種訪問不了GitLab的情況是埠映射和配置文件有誤。

快速的解決方法:將宿主機埠號和容器號設置相同,可參考下面的博客。

利用GitLab Docker images安裝GitLab(填坑)

[圖片上傳失敗...(image-457ad3-1636370071221)]

如果系統環境正常,安裝會十分順利,一般不會有奇怪的問題。
我在不同的伺服器安裝過
阿里雲 CentOS 7.6 : 訪問正常,但是因內存不夠出現502錯誤,容器內可正常連接外部網路
阿里雲 Alibaba Cloud Linux 2 : 可能不能正常訪問容器,容器內不能正常連接外部網路。懷疑是防火牆與docker的問題。

修改密碼:

⑨ Docker Stack介紹及使用入門

在前面的文章中,我們介紹Docker Compose,缺點是不能在分布式多機器上使用;我們還介紹了Docker swarm,缺點是不能同時編排多個服務,所以才有了Docker Stack,可以在分布式多機器上同時編排多個服務。

我們使用前面文章 《Docker Compose介紹及使用入門》 中的2.3節的案例進行如下Docker Stack的演示。

父工程demo包含兩個子工程:

務必確保兩個子工程可以正常運行再進行下面的操作。

分別在service1和service2目錄下執行如下命令,分別打包鏡像:

然後執行 docker images 查看一下鏡像是否正常創建成功:

我自己需要將本地創建好的docker鏡像service1和service2遷移到遠程的阿里雲伺服器上,因為docker swarm集群都是在上面搭建的,後面docker stack實驗的進行也是在上面進行。

方式一:推送和拉取

然後登錄自己的Docker Hub賬戶檢查下鏡像是否成功push了。如果OK的話,那麼登錄阿里雲的遠程伺服器,執行如下的鏡像pull操作。

然後執行 docker images 查看鏡像是否導入成功。

方式二:導出和導入

然後我們將這兩個鏡像通過遠程SFTP的方式上傳到伺服器上,存放的目錄為 /root/docker-images-zip ,再執行如下的命令就可以將這兩個鏡像載入到遠程伺服器的本地鏡像倉庫中了。

然後執行 docker images 查看鏡像是否導入成功。

本地有這兩個鏡像之後,我們編寫compose文件內容如下,文件路徑及文件名為 /root/docker-compose.yml :

以有service1和service2鏡像的伺服器為manager,其它機器為worker node節點,具體的搭建過程在先前文章中講過了,可以參考 Docker Swarm介紹及使用入門 - (jianshu.com)

然後,我們就可以開始使用stack進行集群部署了。

創建完成後,我們可以通過如下命令查看stack及服務的信息:

Docker Compose介紹及使用入門 - (jianshu.com)

Docker Swarm介紹及使用入門 - (jianshu.com)

docker stack deploy | Docker Documentation

Docker常用命令大全 - (jianshu.com)

docker-stack一鍵編排lnmp - 知乎 (hu.com)

閱讀全文

與阿里雲伺服器怎麼配置docker相關的資料

熱點內容
程序員用得到數字區嗎 瀏覽:174
python求商 瀏覽:478
ipad能用c語言編譯器嗎 瀏覽:565
軟泥解壓球最新版 瀏覽:999
4萬程序員辭職創業 瀏覽:760
thinkingphp 瀏覽:597
安卓相冊移動文件夾 瀏覽:7
耳朵清潔解壓聲控99的人都睡得著 瀏覽:206
叉車出租網站源碼 瀏覽:874
共享單車的app是什麼 瀏覽:409
不帶gui的伺服器什麼意思 瀏覽:374
金剛經及PDF 瀏覽:102
php中冒號 瀏覽:359
php5432 瀏覽:353
命令在哪使用 瀏覽:172
php獲取網頁元素 瀏覽:709
為什麼需要硬體驅動編譯 瀏覽:886
pm編程怎樣看導柱孔對不對稱 瀏覽:139
農業大學選課找不到伺服器怎麼辦 瀏覽:661
路由配置網關命令 瀏覽:935