1、如何在Linux伺服器上安裝Docker
安裝一個docker,然後自己用命令行啟動另外一個docker
下面是一個啟動命令:
<pre t="code" l="bash">nohup docker daemon --selinux-enabled=false --log-driver=journald --storage-driver=overlay \
-H unix:///var/run/docker-bootstrap.sock -p /var/run/dockerbootstrap.pid \
--iptables=false --ip-masq=false --bridge=none --graph=/var/lib/dockerbootstrap \
2> /var/log/docker-bootstrap.log 1> /dev/null
注意幾點:-H參數需要給出另外一個socket文件名-p給出另外一個pid文件名--graph 給出另外一個存放docker鏡像容器的路徑名稱
2、如何替換docker鏡像源為阿里雲
小鳥雲伺服器niaoyun實例創建好之後,您可以使用以下任意一種方式登錄伺服器:
遠程桌面連接(,MSTSC):採用這種方式登錄,請確保實例能訪問公網。如果在創建實例時沒有購買帶寬,則不能使用遠程桌面連接。
管理終端VNC:無論您在創建實例時是否購買了帶寬,只要您本地有網頁瀏覽器,都可以通過管理控制台的管理終端登錄實例。
使用遠程桌面連接(MSTSC)登錄實例
打開開始菜單>遠程桌面連接,或在開始菜單>搜索中輸入mstsc。也可以使用快捷鍵Win+R來啟動運行窗口,輸入mstsc後回車啟動遠程桌面連接。
在遠程桌面連接對話框中,輸入實例的公網IP地址。單擊顯示選項。
輸入用戶名,如小鳥雲默認為niaoyun。單擊允許我保存憑據,然後單擊連接。這樣以後登錄就不需要手動輸入密碼了。
3、linux伺服器docker安裝後能不能部署windows鏡像
首先需要區分Linux內核與Linux發行版
Linux內核是Linux操作系統的核心, 負責硬體管理, 比如管理內存、管理磁碟(文件系統)、管理CPU(進程)等等
Linux發行版是在Linux內核的基礎上添加了一些工具,比如圖形界面、函數庫、包管理系統等等
CentOS與Ubuntu是不同的Linux發行版, 它們都是基於Linux內核, 只是添加的工具不同。比如, 他們的包管理系統不同, CentOS使用yum命令安裝, 而Ubuntu使用apt-get命令安裝。
因此CentOS與Ubuntu的內核是相同的(版本可能不同), 只是所安裝的不同, 即文件系統不同。
Docker容器技術是基於Linux內核實現的, 它主要用到了兩個內核模塊:
Namespace: 用於容器的隔離, 例如PID Namespace使得容器中的進程無法感知宿主機以及其他容器中的進程。
Cgroups: 用於容器的資源控制, 比如限制容器所使用的內存大小或者CPU個數。
在CentOS上運行基於Ubuntu鏡像的容器時, 容器使用了CentOS主機的內核以及Ubuntu鏡像, Ubuntu鏡像中安裝了Ubuntu的各種(apt-get)。
4、docker的好處,為什麼使用docker來部署伺服器
Docker的使用
Docker是一個輕量級的虛擬化解決方案,你可以實現秒級的虛擬機啟動、非常輕量級的虛擬化。個人使用理解看來,它可以實現一個類似於版本管理Git一樣的輕量化的狀態保存。
Docker有兩個非常重要的概念: 鏡像和容器。
鏡像是呈載容器的實體,所有容器都是運行在鏡像之上。用版本管理的角度來看,鏡像就像是某一個節點,它可以派生出不同的分支,你可以在不同分支上做不同的事情。可以想像成一棵樹,最基本的鏡像是主樹干,主樹干可以分出旁支樹干,而旁支樹干可以分出更細的旁支,而樹幹上可以生長樹枝。
比如,你使用Docker,從官方倉庫下載一個ubuntu鏡像,把它作為最基礎的鏡像。然後在上面運行一個容器,這個容器里下載Nginx,再以這個容器為基礎生成一個新的鏡像,以後這個鏡像生成的容器就都是ubuntu+nginx為基礎。但是你工作環境可能需要你使用Apache來工作,你也想有一個ubuntu+apache為基礎的鏡像,於是你可以使用最基礎的ubuntu鏡像運行一個容器,在裡面下載安裝Apache,然後以這個容器為基礎,保存一個ubuntu+apache的鏡像,以後在這個鏡像基礎上運行的所有容器都擁有了一個apache環境。
5、如何查看一個docker容器使用了多少伺服器資源
你好,操作命令如下:Docker會在隔離的容器中運行進程。當運行dockerrun命令時,Docker會啟動一個進程,並為這個進程分配其獨占的文件系統、網路資源和以此進程為根進程的進程組。在容器啟動時,鏡像可能已經定義了要運行的二進制文件、暴露的網路埠等,但是用戶可以通過dockerrun命令重新定義(譯者註:dockerrun可以控制一個容器運行時的行為,它可以覆蓋dockerbuild在構建鏡像時的一些默認配置),這也是為什麼run命令相比於其它命令有如此多的參數的原因。命令格式最基本的dockerrun命令的格式如下:$sudodockerrun[OPTIONS]IMAGE[:TAG][COMMAND][ARG]如果需要查看[OPTIONS]的詳細使用說明,請參考Docker關於OPTIONS的章節。這里僅簡要介紹Run所使用到的參數。OPTIONS總起來說可以分為兩類:設置運行方式:決定容器的運行方式,前台執行還是後台執行;設置containerID;設置網路參數;設置容器的CPU和內存參數;-設置許可權和LXC參數;設置鏡像的默認資源,也就是說用戶可以使用該命令來覆蓋在鏡像構建時的一些默認配置。dockerrun[OPTIONS]可以讓用戶完全控制容器的生命周期,並允許用戶覆蓋執行dockerbuild時所設定的參數,甚至也可以修改本身由Docker所控制的內核級參數。Operatorexclusiveoptions當執行dockerrun時可以設置以下參數:DetachedvsForegroundDetached(-d)-(--name)-(--rm),LinuxCapabilities,andLXCConfiguration接下來我們依次進行介紹。Detachedvsforeground當我們啟動一個容器時,首先需要確定這個容器是運行在前台還是運行在後台。-d=false:Detachedmode:Runcontainerinthebackground,printnewcontaineridDetached(-d)如果在dockerrun後面追加-d=true或者-d,那麼容器將會運行在後台模式。此時所有I/O數據只能通過網路資源或者共享卷組來進行交互。因為容器不再監聽你執行dockerrun的這個終端命令行窗口。但你可以通過執行dockerattach來重新附著到該容器的回話中。需要注意的是,容器運行在後台模式下,是不能使用--rm選項的。
6、docker鏡像怎麼遷移到其他的伺服器
docker image 存放在 docker registry 庫中,可通過push把本地的image上傳到Registry庫上,然後再pull回到本地
client01(push) -----> registry <------client02(pull)
7、centos docker 鏡像可以移到其它伺服器么
docker容器跨伺服器的遷移的方法
docker的備份方式有export和save兩種。
export是當前的狀態,針對的是容器,docker save 是針對鏡像images。
export
找出要備份容器的ID
[root@wls12c ~]$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS NAMES
037b847bf093 centos "/bin/bash" 3 minutes ago Exited (0) 2 minute naughty_davinci
備份
[root@wls12c ~]$ docker export 037b847bf093 >centos_demo.tar
[root@wls12c ~]$ -sh centos_demo.tar
195M centos_demo.tar
export是把容器打成一個tar包。
恢復
把剛才備份的centos_demo.tar打包到目標伺服器
[root@11g ~]$ cat centos_demo.tar |docker import - centos:demo查看新生成的鏡像
[root@11g ~]$ docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
centos demo 8962416d1362 24 seconds ago 196.7 MB
save
得到鏡像名稱
[root@wls12c ~]$ docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
centos latest d83a55af4e75 3 weeks ago 196.7 MB
備份鏡像
[root@wls12c ~]$ docker save centos >centos_save.tar
恢復鏡像
[root@11g ~]$ docker load <centos_save.tar
查看恢復的鏡像
[root@wls12c ~]$ docker images
REPOSITORY TAG IMAGE ID CREATED
centos latest d83a55af4e75 3 weeks ago 196.7 MB
兩者的區別:
導出後再導入(exported-imported)的鏡像會丟失所有的歷史,而保存後再載入(saveed-loaded)的鏡像沒有丟失歷史和層 (layer)。這意味著使用導出後再導入的方式,你將無法回滾到之前的層(layer),同時,使用保存後再載入的方式持久化整個鏡像,就可以做到層回 滾(可以執行docker tag <LAYER ID> <IMAGE NAME>來回滾之前的層)。
8、docker 是安裝在本地還是伺服器
Docker的使用Docker是一個輕量級的虛擬化解決方案,你可以實現秒級的虛擬機啟動、非常輕量級的虛擬化。個人使用理解看來,它可以實現一個類似於版本管理Git一樣的輕量化的狀態保存。Docker有兩個非常重要的概念:鏡像和容器。鏡像是呈載容器
9、如何將docker容器中的鏡像跑在伺服器上
步驟1:為我們的容器創建第一個鏡像
# 以 centos 鏡像作為基礎鏡像,我們啟動自己的容器並在其中執行/bin/bash命令
# 註:-t -i 參數用於創建一個虛擬的命令行。
sudo docker run -t -i centos /bin/bash
現在我們已經成功的運行了自己的第一個容器,並且進入到容器的命令行界面中。在容器中,我們執行下面的命令:
yum -y update # 更新軟體包
yum install which # 安裝which命令
yum install git # 安裝Git
安裝完成後,按 Ctrl + d 來退出容器的命令行。
# 執行sudo docker ps -a,可以看到被我們終止的容器
CONTAINER ID IMAGE COMMAND CREATED……
da9031d3568f centos:6.4 /bin/bash 5 minutes ago…..
把我們所做的改變提交到一個新的容器:
# 這里我們創建一個自己的基礎容器,容器中安裝好了文章中所需的常用工具。讀者的容器 id 可能與文章中的有所不同,以上一步 docker ps -a 的結果為准。
sudo docker commit da90 custom/base
容器成功提交後,執行 sudo docker images ,我們會看到剛才提交的容器(如下面的結果所示)。我們就以這個容器為基礎容器,再來創建一個新的容器。
REPOSITORY TAG IMAGE ID CREATED
custom/base latest 05b6cecd370b 2 minutes ago
centos 6.4 539c0211cd76 10 months ago
centos latest 539c0211cd76 10 months ago…
步驟2:創建新的容器,並安裝 apache
# 以 custom/base 容器為基礎,運行一個新的容器。
sudo docker run -t -i custom/base /bin/bash
# 安裝 httpd
yum install httpd
步驟3:再次提交新的容器
按 Ctrl + d 來退出容器的命令行,然後執行命令:
# 這個命令會把步驟2中我們安裝 httpd 帶來的改變提交到新的名為 custom/httpd 的容器鏡像中。你的容器 id 可能會和文章中有所不同,以 sudo docker ps -a 命令的結果為准。
sudo docker commit aa6e2fc0b94c custom/httpd
你應該已經發現了,我們創建了一個帶有 http 伺服器並可以復用的容器鏡像。你可以根據這種思想,為自己所需的每個組件都創建一個容器,然後把這些容器復用於開發環境或者生產環境。
步驟7:運行 http 伺服器
# -v will Mount a volume from VM to the container which was also shared from host to Vagrant VM.
# -v 參數把主機共享給虛擬機的一個卷掛載到容器中
# -p forward VM port 80 to container port 80; VM port 80 is mapped to host port 8080 in Vagrantfile
# -p 參數把虛擬機的80埠映射到容器的80埠;虛擬機的80埠在 Vagrantfile 中被綁定到主機的8080埠,也就是:主機8080->虛擬機80->容器80
sudo docker run -t -i -p 80:80 -v /vagrant/htdocs:/var/www/html custom/httpd /bin/bash
# 啟動 Apache
apachectl -k start
10、無法訪問docker鏡像伺服器?
更改dns
或許可以幫助你
或者使用國內鏡像 比如阿里雲
請採納 謝謝