欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Docker的理解和基本命令詳解

 更新時間:2017年05月13日 15:28:19   投稿:mrr  
這篇文章主要介紹了Docker的理解和基本命令詳解,需要的朋友可以參考下

如何通俗解釋D ocker是什么?

Docker思想來自于集裝箱,集裝箱解決了什么問題呢?比如,在一艘大船上,要把各種各樣的貨物要整理起來,集裝箱(Docker)就可以做到,并且相互間不會影響。就不需要指定運輸?shù)拇耍ㄟ@個船運吃的那個船運穿的)。只要把貨物裝在集裝箱里封裝好,就可以用一艘大船把他們都運走。

1.Docker就是類似的理念。云計算是運輸船,Docker就是集裝箱。

1.不同的應用程序可能會有不同的應用環(huán)境,比如.net開發(fā)的網(wǎng)站和php開發(fā)的網(wǎng)站依賴的軟件就不一樣,如果把他們依賴的軟件都安裝在一個服務器上就要調(diào)試很久,而且很麻煩,還會造成一些沖突。比如IIS和Apache訪問端口沖突。這個時候你就要隔離.net開發(fā)的網(wǎng)站和php開發(fā)的網(wǎng)站。常規(guī)來講,我們可以在服務器上創(chuàng)建不同的虛擬機在不同的虛擬機上放置不同的應用,但是虛擬機開銷比較高。docker可以實現(xiàn)虛擬機隔離應用環(huán)境的功能,并且開銷比虛擬機小,小就意味著省錢了。

2.你開發(fā)軟件的時候用的是Ubuntu,但是運維管理的都是centos,運維在把你的軟件從開發(fā)環(huán)境轉移到生產(chǎn)環(huán)境的時候就會遇到一些Ubuntu轉centos的問題,比如:有個特殊版本的數(shù)據(jù)庫,只有Ubuntu支持,centos不支持,在轉移的過程當中運維就得想辦法解決這樣的問題。這時候要是有docker你就可以把開發(fā)環(huán)境直接封裝轉移給運維,運維直接部署你給他的docker就可以了。而且部署速度快。

3.在服務器負載方面,如果你單獨開一個虛擬機,那么虛擬機會占用空閑內(nèi)存的,docker部署的話,這些內(nèi)存就會利用起來。
總之docker就是集裝箱原理。

4.docker就是用來存放應用的一個容器

容器管理

# docker run -it –name vm1 ubuntu bash //創(chuàng)建容器 
# docker ps -a //查看容器狀態(tài) 
# docker attach vm1 //鏈接容器 
# docker top vm1 //查看容器進程
[root@foundation22 ~]# docker run -it –name vm1 ubuntu 
root@b6e503aec1e3:/# [root@foundation17 ~]# 
//////用ubuntu這個鏡像生成一個名為vm1的容器///
[root@foundation22 ~]# docker run -it ubuntu //未制定容器名稱 
[root@foundation22 ~]# docker ps -a 
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 
c2c94bd4ef22 ubuntu “/bin/bash” 2 minutes ago Up 2 minutes silly_curie 
a2798a01f075 ubuntu “/bin/bash” 4 minutes ago Up 8 seconds vm1 
[root@foundation22 ~]# docker stop c2c94bd4ef22 //結束一個容器(用進程id結束) 
c2c94bd4ef22 
[root@foundation22 ~]# docker rm c2c94bd4ef22 //刪除容器(用進程id刪除) 
c2c94bd4ef22 
[root@foundation22 ~]# docker ps -a 
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 
a2798a01f075 ubuntu “/bin/bash” 5 minutes ago Up About a minute vm1 
root@bd4961841626:/# [root@foundation17 ~]# docker attach vm1
root@bd4961841626:/# ls 
bin dev home lib64 mnt proc run srv tmp var 
boot etc lib media opt root sbin sys usr 
root@bd4961841626:/# touch file{1..5} 
root@bd4961841626:/# ls 
bin dev file1 file3 file5 lib media opt root sbin sys usr 
boot etc file2 file4 home lib64 mnt proc run srv tmp var
[root@foundation22 ~]# docker pause vm1 //暫停容器 
vm1 
[root@foundation22 ~]# docker ps -a 
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 
bd4961841626 ubuntu “/bin/bash” 2 minutes ago Up 41 seconds (Paused) vm1 
[root@foundation22 ~]# docker unpause vm1 //啟動容器 
vm1 
[root@foundation22 ~]# docker ps -a 
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 
bd4961841626 ubuntu “/bin/bash” 3 minutes ago Up About a minute vm1
[root@foundation22 ~]# docker run -it –name vm2 ubuntu 
root@aac0080d0606:/# [root@foundation17 ~]# docker run -it –name vm3 ubuntu 
root@13e9f0e36ea0:/# [root@foundation17 ~]# docker run -it –name vm4 ubuntu 
root@2e4adfc6ea87:/# [root@foundation17 ~]# docker run -it –name vm5 ubuntu 
root@cf98619960fc:/# [root@foundation17 ~]# 
[root@foundation22 ~]# docker ps -aq 
cf98619960fc 
2e4adfc6ea87 
13e9f0e36ea0 
aac0080d0606 
bd4961841626 
[root@foundation22 ~]# docker stop docker ps -aq 
cf98619960fc 
2e4adfc6ea87 
13e9f0e36ea0 
aac0080d0606 
bd4961841626 

容器內(nèi)的數(shù)據(jù)提交:(docker commit vm3 ubuntu//提交vm3容器里面的數(shù)據(jù)到ubuntu鏡像放到倉庫)

[root@foundation22 ~]# docker commit vm3 ubuntu 
sha256:ca9b1aa4a9aee738f632999bfad3baf5bda20b5a8b51de82b8f288a922cb4a66 
[root@foundation22~]# docker stop vm3 
vm3 
[root@foundation22 ~]# docker rm vm3 
vm3 
[root@foundation22 ~]# docker run -it –name vm4 ubuntu 
root@6cb52f07dcde:/# ls 
bin dev file1 file3 file5 lib media opt root sbin sys usr 
boot etc file2 file4 home lib64 mnt proc run srv tmp var

提交的內(nèi)容是在鏡像里面的內(nèi)容上加一層(只讀):

[root@foundation22 ~]# docker run -it –name vm1 ubuntu 
root@59026e7f5104:/# ls 
bin dev file1 file3 file5 lib media opt root sbin sys usr 
boot etc file2 file4 home lib64 mnt proc run srv tmp var 
root@59026e7f5104:/# rm -fr file* 
root@59026e7f5104:/# ls 
bin dev home lib64 mnt proc run srv tmp var 
boot etc lib media opt root sbin sys usr 
root@59026e7f5104:/# exit 
exit 
[root@foundation22 ~]# docker commit vm1 ubuntu 
sha256:734d5eba88071735584a1c22519d9000d133b531df3dd7b56e6bbd0dca2abdd3
[root@foundation22 ~]# docker run -it –name vm8 ubuntu 
root@e05171f7c0c7:/# ls 
bin dev home lib64 mnt proc run srv tmp var 
boot etc lib media opt root sbin sys usr
[root@foundation22 ~]# docker history ubuntu //查看鏡像的層(最多不能超過127層) 
IMAGE CREATED CREATED BY SIZE COMMENT 
734d5eba8807 29 minutes ago /bin/bash 52 B 
ca9b1aa4a9ae 51 minutes ago /bin/bash 28 B 
07c86167cdc4 14 months ago /bin/sh -c #(nop) CMD [“/bin/bash”] 0 B 
220d2912ab1d 14 months ago /bin/sh -c sed -i ‘s/^#\s*(deb.*universe)$/ 1.895 kB 
cc77a2e3d72c 14 months ago /bin/sh -c echo ‘#!/bin/sh' > /usr/sbin/polic 194.5 kB 
c8fa7cdceff3 14 months ago /bin/sh -c #(nop) ADD file:b9504126dc55908988 187.7 MB 

////vm1里面新建文件后,提交,vm1里面的文件提交到ubuntu之后,ubuntu里面就有記錄,再用鏡像ubuntu建立容器,容器內(nèi)部包含有vm1里面的文件。如果刪除vm1里面新建的文件,再次提交,ubuntu里面的內(nèi)容就會被覆蓋掉。再次用ubuntu建立容器,新建立的容器不就沒有最早vm1里面建立的文件。

復制文件到容器里面需要制定路徑(即容器源)

[root@foundation22~]# docker cp /etc/passwd vm1 
must specify at least one container source 
[root@foundation22 ~]# docker cp /etc/passwd vm1:/
[root@foundation22 ~]# docker export -o vm2.tar vm1 //導出到當前目錄,并命名為vm2.tar
[root@foundation22 ~]# docker save -o ubuntu.tar ubuntu:v1 // 將ubuntu:v1鏡像制成 ubuntu:v1文件
[root@foundation22 ~]# docker run -d –name web -p 8000:80 nginx 
3cca467e17717b7dd09dd997d7df4e2239e8505be8f0fc79ec11804c5365103d 
[root@foundation22 ~]# docker ps 
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 
3cca467e1771 nginx “nginx -g ‘daemon off” 15 seconds ago Up 11 seconds 443/tcp, 0.0.0.0:8000->80/tcp web 
[root@foundation22 ~]# netstat -antlp | grep :8000 
tcp6 0 0 :::8000 :::* LISTEN 16093/docker-proxy 
[root@foundation22 ~]# docker diff vm1 
C /root 
C /root/.bash_history 
A /passwd 
D /file2 
D /file5 
D /file1 
D /file3 
D /file4

D:表示刪除
A:表示增加add

以上所述是小編給大家介紹的Docker的理解和基本命令詳解,希望對大家有所幫助!

相關文章

  • Dockerfile構建自定義鏡像的實現(xiàn)

    Dockerfile構建自定義鏡像的實現(xiàn)

    Dockerfile構建鏡像的方式就目前而言是使用最為廣泛的,本文主要介紹了Dockerfile構建自定義鏡像的實現(xiàn),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • docker之點到點的容器網(wǎng)絡的配置

    docker之點到點的容器網(wǎng)絡的配置

    本篇文章主要介紹了docker之點到點的容器網(wǎng)絡的配置,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-03-03
  • Docker中部署nginx服務的方案

    Docker中部署nginx服務的方案

    這篇文章主要介紹了Docker中部署nginx服務的方案的相關資料,需要的朋友可以參考下
    2022-11-11
  • Docker可視化管理工具DockerUI的使用

    Docker可視化管理工具DockerUI的使用

    這篇文章主要介紹了Docker可視化管理工具DockerUI的使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-12-12
  • Docker如何使用link建立容器之間的連接

    Docker如何使用link建立容器之間的連接

    本篇文章主要介紹了Docker如何使用link建立容器之間的連接,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-04-04
  • Docker如何拉取oracle11g鏡像

    Docker如何拉取oracle11g鏡像

    這篇文章主要介紹了Docker如何拉取oracle11g鏡像問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • docker容器時區(qū)錯誤問題

    docker容器時區(qū)錯誤問題

    常出現(xiàn)docker中運行的容器獲取到的時間與北京時間相差8小時的問題,其實是因為容器運行的時區(qū)不正確。本文主要介紹了docker容器時區(qū)錯誤問題,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • Docker單機部署Doris超詳細圖文教程

    Docker單機部署Doris超詳細圖文教程

    Apache?Doris是一款基于MPP架構的分析型數(shù)據(jù)庫,由百度大數(shù)據(jù)部研發(fā),支持亞秒級響應時間的實時數(shù)據(jù)分析,本文旨在為學習Doris的同學提供一個快速的操作指引,以便更高效地挖掘數(shù)據(jù)背后的價值,對docker?部署Doris?數(shù)據(jù)庫使用感興趣的朋友跟隨小編一起看看吧
    2024-09-09
  • Docker安裝配置RabbitMQ的實現(xiàn)步驟

    Docker安裝配置RabbitMQ的實現(xiàn)步驟

    RabbitMQ是基于AMQP的一款消息管理系統(tǒng)。AMQP(Advanced?Message?Queuing?Protocol),是一個提供消息服務的應用層標準高級消息隊列協(xié)議,其中RabbitMQ就是基于這種協(xié)議的一種實現(xiàn)
    2021-11-11
  • Docker安裝方法與Docker四種網(wǎng)絡模式詳解

    Docker安裝方法與Docker四種網(wǎng)絡模式詳解

    今天小編就為大家分享一篇關于Docker安裝方法與Docker四種網(wǎng)絡模式的詳解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-09-09

最新評論