鏡像倉庫地址是伺服器ip嗎
⑴ docker本地倉庫和遠程倉庫切換
1. 登錄docker hub倉庫
docker login hub.xxxyyy.com
# 輸入用戶名及密碼
# username:
# passward:
1
2
3
4
1
2
3
4
輸入正確的用戶名及密碼後,發現報 connection refused 錯誤:
Error response from daemon: Get "https://hub.xxxyyy.com/": dial tcp hub.xxxyyy.com:443: connect: connection refused
1
1
解決該錯誤,可以通過在daemon.json文件中寫入"insecure-registries"解決。
2. 創建/etc/docker/daemon.json文件
daemon.json文件默認是不存在的,所以我們需要先創建該文件。下面以Ubuntu 16.04為例,創建 /etc/docker/daemon.json 文件並寫入"insecure-registries"配置。
vim /etc/docker/daemon.json
1
1
文件內容如下:
{
"builder": {
"gc": {
"defaultKeepStorage": "20GB",
"enabled": true
}
},
"experimental": false,
"features": {
"buildkit": true
},
"insecure-registries": [
"hub.xxxyyy.com"
],
"registry-mirrors": [
"https://registry.docker-cn.com"
]
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
這里的關鍵是在文件里寫入:
「insecure-registries」: [
「hub.xxxyyy.com」
]
「hub.xxxyyy.com」 也可直接寫成域名的形式,如 「172.171.xxx.xxx」。
3. 重啟daemon及docker服務
systemctl daemon-reload
systemctl restart docker
1
2
1
2
重啟相關服務後,再次使用 dokcer login 發現可以登錄成功。
4. 將本地鏡像推送至遠程 docker hub 倉庫
以推送本地鏡像 ubuntu:18.04 至遠程私有鏡像倉庫為例:
(1) 由於推送到私有鏡像倉庫的鏡像名必須符合「倉庫IP:埠號/repository」的形式,因此需要按照要求修改鏡像名稱,具體操作指令如下。
docker tag ubuntu:18.04 hub.xxxyyy.com/common/ubuntu:18.04
1
1
(2) 推送鏡像。要推送的本地鏡像准備就緒後,就可以將其推送到私有鏡像倉庫了,具體操作指令如下:
docker push hub.xxxyyy.com/common/ubuntu:18.04
1
1
出現以下信息說明推送成功。
The push refers to repository [hub.xxxyyy.com/common/ubuntu]
1dc52a6b4de8: Pushed
18.04: digest: sha256: size: 529
1
2
3
1
2
3
此時,可在遠程私有鏡像倉庫中查看到推送上去的 ubuntu:18.04 鏡像。
⑵ docker 使用
運行容器
sudo docker run -it -v /home/lcj/test_docker:/home/lcj/test_docker tensorflow/tensorflow:1.13.1-gpu-py3
參數:
-d 後台運行並返回容器ID,如 -itd
-e 設置環境變數,如 -e NVIDIA_VISIBLE_DEVICE=0 使用編號為 0 的GPU
-i 打開 STDIN,用於控制台交互,通常跟 -t 一起使用
--net 容器網路設置,如 --net my_network,或者 --net=contianer:NAME_or_ID,使用其他容器的網路,共享 IP 和 PORT 等資源
--restart 指定容器停止後的啟動的策略,如 --restart=always
--runtime=nvidia 使用 nvidia 模式運行,跟 -e 一起使用,可以在容器里使用 GPU
-t 為容器重新分配一個偽輸入終端,通常與 -i 一起使用
-v 給容器掛載存儲卷,掛載到容器的某個目錄,如 -v /home/lcj/test_docker:/home/lcj/test_docker
-w 指定容器的工作目錄
停止容器
docker stop 容器ID
或者 docker stop `docker ps -a -q` 停止所有容器
重啟容器
docker restart 容器ID
進入一個運行中的容器
docker attach 容器ID
保存容器
docker save myimage | bzip2 -9 -c > /home/lcj/save.tar.bz2
載入容器
bzip2 -d -c < /home/lcj/save.tar.bz2 | docker load
殺掉運行中的容器
docker kill -s KILL 容器ID
-s:向容器中發送一個信號
docker rm 命令
參數:
-f :通過 SIGKILL 強制刪除一個容器,如 docker rm -f a
-l:移除容器間的網路連接,而非容器本身,如 docker rm -l b,其中 b 為連接名,而非容器名
-v:刪除與容器關聯的卷
docker create :創建一個容器但不運行它,語法同 docker run
docker ps
-a:顯示所有的容器,包括未運行的
-f:根據條件過濾顯示的內容
-l:顯示最近創建的容器
-n:列出最近創建的 n 個容器
-q:靜默模式,只顯示容器 ID
列出所有創建的容器 ID
docker ps -a -q
停止所有容器 ID
docker stop `docker ps -a -q`
獲取容器/鏡像的元數據
docker inspect 容器/鏡像名
docker top :查看容器中的進程信息
docker top a(a 是容器)
docker attach :鏈接到正在運行的容器(該容器必須正在運行)
docker attach a (a 是容器)
docker events :從伺服器獲取實時事件
-f:根據條件過濾事件
--since:從指定的時間戳後顯示所有的事件
--until:流水時間顯示到指定的時間為止
顯示docker 2016年7月1日後的所有事件
docker events -since="1467302400"
顯示docker 鏡像為mysql:5.6 2016年7月1日後的相關事件
docker events -f "image"="mysql:5.6" --since="1467302400"
備註:如果指定的時間是到秒級的,需要將時間轉成時間戳。如果時間為日期的話,可以直接使用,如--since="2016-07-01"
docker export :將文件系統作為一個 tar 壓縮文件導出到 STDOUT
docker port :列出指定的容器埠的映射,或者查找將 PRIVATE_PORT NAT 到面向公眾的埠
docker port a(a 為容器名)
docker commit : 從容器創建一個新的鏡像
-a:提交的鏡像作者
-c:使用 Dockerfile 文件來創建鏡像
-m:提交時說明的文字
-p:在 commit 時暫停容器
docker commit -a 'lcj' -m 'has update' 容器 ID 鏡像名
docker cp :用於容器與主機之間的數據拷貝
將主機的 test_docker 目錄拷貝到容器 /home/lcj 目錄下
docker cp /home/lcj/test_docker 容器 ID:/home/lcj/
將容器 /home/lcj 目錄拷貝到主機的 test_docker 目錄下
docker cp 容器 ID:/home/lcj/ /home/lcj/test_docker
docker login/logout :登錄或退出一個 Docker 鏡像倉庫,如果未指定鏡像倉庫地址,則默認為 官方 Docker Hub
docker login -u 用戶名 -p 密碼
docker logout
docker pull :從鏡像倉庫中拉取或者更新指定鏡像
docker pull java
docker push :將本地的鏡像上傳到鏡像倉庫,需先登錄到鏡像倉庫
docker push myapache:v1
docker search :從 Docker Hub 查找鏡像
--automated,只列出 automated build(自動生成) 類型的鏡像
--no-trunc,顯示完整的鏡像描述
-s:列出收藏數不少於指定值的鏡像
從Docker Hub查找所有鏡像名包含java,並且收藏數大於10的鏡像
docker search -s 10 java
docker images :列出本地所有的鏡像
-a:列出本地所有的鏡像(含中間映像層,默認情況下,過濾中間映像層)
-q:只顯示鏡像 ID
docker images 或 docker images ubuntu,列出本地所有鏡像或本地倉庫名為 ubuntu 的所有的鏡像
docker rmi :刪除一個或多個鏡像
-f:強制移除
--no_prune:不移除該鏡像的過程鏡像,默認移除
強制刪除本地鏡像w3cschool/ubuntu:v4
docker rmi -f w3cschool/ubuntu:v4
docker tag :標記本地鏡像,將其歸入到某一個倉庫
將鏡像ubuntu:15.10標記為 w3cschool/ubuntu:v3 鏡像
docker tag ubuntu:15.10 w3cschool/ubuntu:v3
docker build:使用 Dockerfile 文件創建鏡像
使用當前目錄的Dockerfile創建鏡像
docker build -t w3cscholl/ubuntu:v3 . (不要漏掉最後的 . 符號)
使用URL github.com/creack/docker-firefox 的 Dockerfile 創建鏡像
docker build github.com/creack/docker-firefox
docker history :查看指定鏡像的創建歷史
docker save :將指定鏡像保存成 tar 壓縮文件
-o:輸出到文件
docker save -o my_ubuntu_v3.tar w3cschool/ubuntu:v3
docker import:從壓縮文件中創建鏡像
-c:應用 docker 指令創建鏡像
-m:提交時的說明文字
從鏡像歸檔文件my_ubuntu_v3.tar創建鏡像,命名為w3cschool/ubuntu:v4
docker import my_buntu_v3.tar w3cschool/ubuntu:v4
⑶ 怎樣創建非ip形式的docker鏡像倉庫
開源Docker倉庫v2 的其中一個最新特性:能夠被用作代理緩存倉庫,以緩存Docker Hub上的鏡像。運行一個緩存倉庫允許你在本地儲存鏡像,減少過多的通過互聯網從Docker Hub拉取鏡像,這個特性對於一些在他們環境中擁有數量龐大的Docker引擎的用戶來說很有用。跟著本篇教程,你可以讓Docker引擎從本地代理緩存倉庫拉取鏡像,而不是讓每個引擎總是從Docker Hub拉取,從而節省時間和帶寬。
你可以這樣開始:
####要求:
- Docker引擎1.8.3
- Docker倉庫v2
- 足夠儲存Docker鏡像的磁碟空間
- TLS證書和密鑰
持久化數據
在這個例子中,我們會假設你會儲存所有持久化數據在本地文件系統的<code>/data</code>路徑下,這個路徑下包含TLS證書和密鑰文件,配置文件和鏡像緩存文件。我們之後會用卷掛載這個目錄進運行倉庫的容器。
⑷ 伺服器ip地址是什麼
意思是伺服器的ip地址。
IP地址就是給每個連接在互聯網上的主機分配的一個32位地址。
IP地址就好像電話號碼(地址碼):有了某人的電話號碼,你就能與他通話了。同樣,有了某台主機的IP地址,你就能與這台主機通信了。
由於有這種地址,才保證了用戶在連網的計算機上操作時,能夠高效而且方便地從千千萬萬台計算機中選出所需的對象來。伺服器地址就是說的伺服器的ip地址,能讓別人通過ip找到伺服器。
(4)鏡像倉庫地址是伺服器ip嗎擴展閱讀:
IP網路使用32位地址,以點分十進製表示,如192.168.0.1。地址格式為:IP地址=網路地址+主機地址或 IP地址=網路地址+子網地址+主機地址。
網路地址是網際網路協會的ICANN分配的,下有負責北美地區的InterNIC、負責歐洲地區的RIPENIC和負責亞太地區的APNIC 目的是為了保證網路地址的全球唯一性。主機地址是由各個網路的系統管理員分配。因此,網路地址的唯一性與網路內主機地址的唯一性確保了IP地址的全球唯一性。
⑸ ip地址和伺服器是一個意思嗎
IP
地址和伺服器不是一個意思,他們就像門牌和房子一樣。IP地址,就像房屋的門牌只是一個標識,多少號多少號讓你可以順著道找到地方,而伺服器他是一個存儲的空間,就像一間房子,你可以隨心去布置去安放你想要的應用,伺服器是一個可以使用存放應用的存儲器,通上網路別人可以訪問,就像打開門別人可以讓你想讓進屋的人參觀你的房子。騰正科技,嘉輝,上
⑹ docker中倉庫(Repository)與注冊伺服器(Registry)的區別
倉庫(Repository)是集中存放鏡像的地方,倉庫分為公有倉庫與私有倉庫
一個容易混淆的概念是注冊伺服器(Registry)。實際上注冊伺服器是管理倉庫的具體伺服器,每個伺服器上可以有多個倉庫,而每個倉庫下面有多個鏡像。從這方面來說,倉庫可以被認為是一個具體的項目或目錄。例如對於倉庫地址 l.dockerpool.com/ubuntu 來說,dl.dockerpool.com是注冊伺服器地址,ubuntu是倉庫名。
大部分時候,並不需要嚴格區分這兩者的概念。
注冊伺服器、倉庫、鏡像關系如下
⑺ 伺服器Ip是什麼
你好,樓主
伺服器的IP是一種通信地址,在Internet上給主機編址的方式,也稱為網際協議地址。無論是伺服器還是個人pc,聯網都需要有IP地址,IP是主機之間唯一的識別,類似我們人類的身份證號碼。只要遵守IP協議,就可以與網際網路互聯互通。目前常見的IP是IPv4,如11.151.39.90這樣表示。
希望我的回答能幫上忙,如有不明白的地方,可以聯系我。
⑻ docker私有鏡像倉庫搭建和鏡像刪除
docker私有鏡像倉庫一般用來存放公司內部的鏡像,比如微服務中會有很多的服務需要放到自己公司內部的鏡像倉庫上,發布的時候直接從私有鏡像倉庫拉取。比如我公司的微服務部署在k8s環境上,微服務技術依然選擇熟悉的 Spring Cloud ,這樣每一個服務其實就是一個 Spring Boot 項目,我們通過Maven的插件會在項目編譯、打包之後推送到我們的私有鏡像倉庫,之後CI工具使用kubelet部署的時候會從私有鏡像倉庫拉取鏡像,最後完成部署,可以說私有鏡像倉庫是非常重要的一個環節。
接下來我會主要講述一下私有鏡像倉庫的搭建以及鏡像的管理,包括一些自己遇到的問題。
首先要保證自己的伺服器已經安裝了 docker 。具體的安裝教程可以看 官網 ,這里就不在贅述了。
首先我們需要創建一個自己的CA證書,
比如下圖是我自己創建時輸入的相關內容:
做好鏡像存儲目錄和證書目錄的掛載,運行即可
這一步需要在所有需要拉取鏡像的伺服器上執行。上月底我在部署正式環境時我就遇到了這個問題,k8s的節點上一直顯示拉取鏡像失敗,後來才發現忘了在k8s伺服器上配置證書。
hostname 即生成CA證書的時候最後輸入的 hostname , port 鏡像倉庫對外暴露的埠號。
如果是在鏡像倉庫所在的伺服器上,執行:
如果不是同一台伺服器,同樣需要存放創建證書目錄,執行:
之後將證書上傳到目標伺服器,且放在證書目錄下,名稱為 ca.crt 。
為了測試,我拉取一個 redis 鏡像,然後給它重新打一個 tag 。
推送到私有鏡像倉庫:
瀏覽器顯示:
表示剛才推送到私有鏡像倉庫是成功的。接下來我們測試從另一台伺服器拉取剛才的鏡像。當然這台伺服器一定要按照之前的描述配置好CA證書,還要修改伺服器 hosts 文件,配置好 ip 和 hostname 。
拉取鏡像:
拉取鏡像如下圖所示:
根據顯示可以看出拉取鏡像是成功的。
到這里鏡像倉庫的搭建、推送和拉取都講完了,接下來就看看怎麼刪除鏡像。
這里說的刪除鏡像是指從倉庫中刪除,即從伺服器上刪除。在構建倉庫的時候我們將鏡像的倉庫容器內的目錄掛載到了伺服器的目錄。鏡像倉庫內其實是沒有鏡像文件,都在伺服器對應的目錄下。在開發的時候我就遇到過這樣一個問題,因為是開發環境項目編譯、打包、鏡像構建和推送都非常頻繁,雖然新的鏡像會覆蓋老的鏡像,但是原有的鏡像文件本身並沒有被覆蓋,這樣的結果就是雖然鏡像倉庫上看鏡像只有一個,但是本地服務上存儲的是很多個鏡像文件(而且基本是沒啥用的),最終導致了服務磁碟空間不足的情況。
我們依然以 Redis 舉例,我將多不同版本的 Redis 多次像私有倉庫推送,不管是 Redis 4.0、5.0、6.0,最終我向倉庫推送的版本號都是 redis:v4 (過程省略),最終我們在鏡像倉庫目錄( /home/registry/ )下可以看到有多個 sha256 的值,詳細目錄:
/home/registry/docker/registry/v2/repositories/redis/_manifests/revisions/sha256
如下圖:
如果要刪除鏡像首先需要修改配置文件,進入到docker容器內:
保存之後退出容器。
我們進入到存放鏡像的目錄下,刪除一個鏡像的 sha256 的值
上面只是刪除了鏡像的 sha256 值,並沒有刪除鏡像本身,我們需要調用垃圾回收的命令:
這時候會看到一些輸出,比如:
這時候我們在查看下對應目錄的磁碟使用情況:
但是變化不明顯,那就在刪除一個試試。
除了手動刪除之外還可以通過API來刪除,這個方法我沒有測試,感興趣的小夥伴可以測試一下。在實際過程中我也是使用上述方法刪除的,因為我一般都是磁碟使用率到一定比例才進行批量刪除的,另外網上也有人通過腳本,感興趣的小夥伴都可以嘗試一下。
刪除可以使用使用官方API刪除:
查詢鏡像的 sha256 的值:
今天關於docker私有鏡像倉庫的內容就講到這里,如果對上面內容有什麼疑問歡迎大家交流探討,也歡迎大家多多點贊、分享、轉發,謝謝大家~~~
⑼ 資料庫的伺服器是不是就是伺服器的IP地址呀
簡單理解:在伺服器上安裝一套資料庫軟體。
⑽ 如何修改maven倉庫的鏡像地址
安裝完maven後,可在maven目錄下的conf文件夾,修改sestting.xml文件
將mirror倉庫的注釋,恢復,修改為自己的私服或者國內鏡像倉庫地址
<mirror> <id>mvnrepository.com</id> <mirrorOf>central</mirrorOf> <name>repo in china</name> <url> 倉庫地址</url> </mirror>
**需要注意的是,maven安裝時都有默認的中央倉庫地址,但是由於牆的原因,我們可能不能訪問,如果不能訪問就需要配置國內的maven倉庫
當我們配置了鏡像倉庫,maven就不會從默認的中央倉庫下載依賴,都會轉到鏡像倉庫