[Docker]Docker快速上手學習筆記

0. 學習的一些疑問

  • 如何熱更新鏡像(images)?(你可以快速啟動或者銷毀容器。這種時間幾乎是實時的)
  • 如何熱更新游戲服?
  • 好處在于各個應用之間環境相互獨立,即使某一個容器崩潰也不會影響到其它容器;
  • 每個容器使用端口如何維護?(方法1寫在Dockerfile里面,不靈活;方法2在run的時候-p指定);
  • 那這樣的話,會存在好多linux用戶,相當于每一個容器就要維護一個物理機(虛擬);
  • 需要一套工具來管理維護鏡像、容器的操作和狀態;
  • 目前主流使用docker都是應用到哪些場景中?

1. docker的二個軟件

  • Docker: 開源的容器虛擬化平臺;
  • Docker Hub: Software-as-a-Service平臺,用來共享和管理docker容器。

2. docker的三大模塊

  • Docker images.(鏡像)
  • Docker registries.(倉庫)
  • Docker container.(容器)

3. 常用命令

3.1. 常用鏡像命令

  • docker image(查看鏡像信息)
  • docker build(創建鏡像)
    • Dockerfile
      • '#注釋'
      • FROM 基于哪個鏡像為基礎
      • MAINTAINER 維護者信息
      • RUN 運行指令
      • ADD 復制本地文件到鏡像
      • EXPOSE 設置開放端口
      • CMD 容器啟動后允許的程序
      • WORKDIR 切換工作目錄
    • -t 添加tag
    • build后面需要接路徑

3.2. 少用鏡像命令

  • docker pull(獲取鏡像)
  • docker push(上傳鏡像)
  • docker search(搜索鏡像)
    • -s N 只搜索指定星級以上的鏡像
  • docker rmi(刪除鏡像)
  • docker tag [id] [new name:tag] (修改tag)
  • docker save(保存鏡像)
  • docker load(加載鏡像)
    • docker load --input xxx.tar
    • docker load < xxx.tar
    • load與import的區別,鏡像是完整的與快照是丟棄歷史記錄和元數據信息的
  • docker rmi $(docker images -q -f "dangling=true")(清理所有未打過標簽的本地鏡像)

3.3. 常用容器命令

  • docker run([下載鏡像并]啟動容器)
    • -t 分配一個偽終端
    • -i 打開標準輸入
    • -d 后臺運行
    • -v?創建并掛載數據卷(可有多個)
    • --volumes-from 掛載數據卷(可有多個)
    • -p 指定映射端口 (ip:port:containerPort/udp|ip::containerPort|port:containerPort)
    • -P 隨機映射端口
    • --name 自定義容器名字
    • --rm 終止后立即刪除容器
    • --link?:?容器互聯
  • docker start(啟動已終止容器)
  • docker stop(終止容器)
  • nsenter(進入容器)(推薦)
    • PID=$(docker inspect --format "{{ .State.Pid }}"?)
    • nsenter --target $PID --mount --uts --ipc --net --pid

3.4. 少用容器命令

  • docker commit(提交容器)
    • -m --massage="" 提交信息
    • -a --author="" 作者信息
    • -p --pause=true 提交時暫停容器運行
  • docker attach(進入容器)
  • docker ps(查看正在運行的容器)
    • -a 查看已終止
  • docker logs [container ID or NAMES] 查看(后臺)運行日志
  • docker export(導出容器為文件)
    • docker export?> xxx.tar
  • docker import(文件快照導入鏡像)
    • cat xxx.tar | docker import - test/name:v1.0
    • docker import?http://xxx.tgz?test/name
  • docker rm(刪除容器)
    • 默認不會刪除運行中的容器
    • docker rm $(docker ps -a -q) 清理所有處于終止狀態的容器
    • -v 同時刪除數據卷

4. 安裝

4.1. 在CentOS7中安裝

curl -sSL https://get.docker.com/ | sh        //下載官服腳本按照
chkconfig docker on                           //設置開機自動啟動

4.2. 在CentOS6中安裝

4.2.1. 添加yum軟件源

tee /etc/yum.repo.d/docker.repo << 'EOF'
[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/$releasever/
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
EOF

4.2.2. 安裝docker

yum update
yum install -y docker-engine

4.2.3. No module named yum

如果在執行yum update的時候出現了No module named yum錯誤,可能是存在與yum不對應的python版本引起。可以通過修改yum和yum-updatest的執行腳本(/usr/bin/yum/usr/bin/yum-updatest)的注釋來指定python版本。譬如:

#!/usr/bin/python
修改為
#!/usr/bin/python2.6

5. 基礎環境

可以下載bashrc_docker文件,加載到環境.bashrc中,其可以提供一些方便的命令用于做一些比較復雜的過程。

.bashrc_docker(https://raw.githubusercontent.com/yeasy/docker_practice/master/_local/.bashrc_docker) 定義了以下命令

- docker-pid(獲取容器pid)
- docker-enter(進入容器)

下載和加載到linux環境中:

wget -P ~ https://raw.githubusercontent.com/yeasy/docker_practice/master/_local/.bashrc_docker
echo "[ -f ~/.bashrc_docker ] && . ~/.bashrc_docker" >> ~/.bashrc;source ~/.bashrc

6. 倉庫

6.1. 私有倉庫

官服提供了一個docker-registry鏡像來供私有倉庫的搭建。

docker run -d -p 2010:5000 registryvi /etc/docker/daemon.json
{"insecure-registries":["myregistry.example.com:5000"]}cul http://x.x.x.x:2010/v2/linerl/tags/list

API文檔:https://github.com/docker/distribution/blob/master/docs/spec/api.md

7. 學習后的一些結論

  • 本身是虛擬機技術實現的服務器大多數帶有隨時可擴展升級的性質,沒有資源分配的需求,沒有必要用到docker;
  • docker適合在做負載均衡的短鏈接的web服務上面,應用場景都是以鏡像、容器為操作單位的最佳;
  • 如果有業務可以做到鏡像、容器來維護就可以的,說明這個業務就很合適使用docker。

?

以上只是本人剛開始學習的一些理解,當然docker的能力我還遠遠沒理解到,適合的場景肯定還有很多。目前的記錄只是為了以后查閱和學習鞏固。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/276242.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/276242.shtml
英文地址,請注明出處:http://en.pswp.cn/news/276242.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

原來 Clipboard 還能復制圖像?原理是什么

在寫了 這個 29.7 K 的剪貼板 JS 庫有點東西&#xff01; 這篇文章之后&#xff0c;收到了小伙伴提的兩個問題&#xff1a;1.clipboard.js 這個庫除了復制文字之外&#xff0c;能復制圖像么&#xff1f;2.clipboard.js 這個庫依賴的 document.execCommand API 已被廢棄了&…

計算機大數據的前景方向_計算機方向,網絡與信息安全和大數據哪個前景好一點?...

大數據是我目前的研究方向之一&#xff0c;我也曾經做過網絡安全相關的項目&#xff0c;主要涉及的是各種網絡環境下數據傳輸的安全處理方案。另外&#xff0c;我曾經給高校的學生做過網絡安全的系列講座&#xff0c;系統地整理過網絡安全的相關內容&#xff0c;所以我來談一談…

Smarty 顯示大括號 | 在Smarty中計算數組元素的長度 | Smarty字符串拼接

參考鏈接&#xff1a;http://hi.baidu.com/bdusnb/item/289d160e6a9c92cd9157183d 參考鏈接&#xff1a;http://hi.baidu.com/mayimu789/item/b565088d047da0d05f0ec16f 參考鏈接&#xff1a;http://blog.sina.com.cn/s/blog_8155e74d0101el2k.html Smarty 3 &#xff1a;大…

ftp協議分析(一)

作者: 肖建彬 | 可以轉載, 轉載時務必以超鏈接形式標明文章原始出處和作者信息及版權聲明網址&#xff1a;http://www.xiaojb.com/archives/it/ftp.shtml根據是使用port模式還是passive模式&#xff0c;ftp使用不同的tcp端口號&#xff0c;在詳細描述ftp前&#xff0c;我們來簡…

JavaScript 元編程

大家好&#xff0c;我是若川。今天給分享一篇來自freecodecamp的好文。我是freecodecamp杭州社區組織者之一&#xff0c;有一群小伙伴一起組織線下分享活動&#xff0c;不過2020年我們杭州社區幾乎沒有活躍&#xff0c;我也沒有什么貢獻。另外&#xff0c;我的公眾號「若川視野…

python 異常處理模塊_擴展Python模塊系列(五)----異常和錯誤處理

在上一節中&#xff0c;討論了在用C語言擴展Python模塊時&#xff0c;應該如何處理無處不在的引用計數問題。重點關注的是在實現一個C Python的函數時&#xff0c;對于一個PyObject對象&#xff0c;何時調用Py_INCREF和Py_DECREF。在編寫C語言代碼時&#xff0c;需要了解Python…

常見的php筆試題(附答案)搜集整理

轉載鏈接&#xff1a;http://www.yaojinbu.com/p/139.html 常見的php筆試題&#xff08;附答案&#xff09;搜集整理 1.在PHP中&#xff0c;當前腳本的名稱&#xff08;不包括路徑和查詢字符串&#xff09;記錄在哪個預定義變量中&#xff1f;而鏈接到當前頁面的URL又記錄在哪個…

Js整理備忘(02)——運算符

1、運算符的表示以及優先級 Javascript&#xff08;以下簡寫為Js&#xff09;的大部分運算符與C或Java是類似的。 記得剛學C語言時老師講的優先級口訣&#xff0c;非常好記&#xff1a;“括、單、算、移、關”“位、邏、條、賦、逗”&#xff0c;此處也可以套用一下&#xff0c…

手寫一個合格的前端腳手架

為什么我們需要一套腳手架為什么我們需要一套腳手架&#xff0c;它能幫助我們解決哪些痛點問題。?前端項目配置越來越繁瑣、耗時&#xff0c;重復無意義的工作?項目結構不統一、不規范?前端項目類型繁多&#xff0c;不同項目不同配置&#xff0c;管理成本高?腳手架也可以是…

第一篇cnblog!

本人才疏學淺&#xff0c;終于通過了cnblog的審核&#xff0c;興奮之余&#xff0c;發表感言——不容易啊&#xff01;在我的博聞里面&#xff0c;隨筆類當然就是技術類的比較多的&#xff0c;特別是實例類的。理論類的大部分放在文章板塊&#xff0c;本人e文特別好(哈哈&#…

解決error 1045: Access denied for user: 'root@localhost' (Using password: YES)

轉載連接&#xff1a;http://jianfw2009.blog.163.com/blog/static/13431366020111016112459158/ 1、先停止mysql服務2、在mysql的目錄下找到my.ini&#xff0c;在[mysqld]后面加上skip-grant-tables3、啟動mysql服務,打開Command Line Client以空密碼登錄4、退出mysql,并停止服…

fillcolor是什么意思_fill是什么意思

1. (使)裝滿;(使)注滿;(使)充滿If you fill a container or area, or if it fills, an amount of something enters it that is enough to make it full.e.g.Fill a saucepan with water and bring to a slow boil...往平底鍋里加滿水,小火煮沸。e.g.She made sandwiches, fill…

利用JMeter進行壓力測試(1)(轉)

轉自&#xff1a;http://www.cnblogs.com/game-over/archive/2010/01/08/1642685.html壓力測試以軟件響應速度為測試目標&#xff0c;尤其是在較短時間內大量并發用戶的同時訪問時&#xff0c;軟件的性能和抗壓能力。 JMeter是一款開源的壓力測試工具&#xff0c;目前最新Rele…

MyISAM InnoDB 區別

轉載鏈接&#xff1a;http://www.php100.com/html/webkaifa/database/Mysql/2011/0326/7789.html MyISAM 和 InnoDB 講解 InnoDB和MyISAM是許多人在使用MySQL時最常用的兩個表類型&#xff0c;這兩個表類型各有優劣&#xff0c;視具體應用而定。基本的差別為&#xff1a;MyISAM…

Git 內部原理圖解——對象、分支以及如何從零開始建倉庫

我們中的許多人每天都在使用 git&#xff0c;但是有多少人知道它的內部是怎么運作的呢&#xff1f;例如我們使用 git commit 時發生了什么&#xff1f;提交&#xff08;commit&#xff09;與提交之間保存的是什么&#xff1f;兩次提交之間難道只是文件的差異&#xff08;dif…

wpsmac和pc版的區別_Mac版WPS Office和微軟Office 2019哪個更好?

眾所周知&#xff0c; macOS系統生態下&#xff0c;有許多界面精美、功能強大、體驗出色的軟件&#xff0c;但提到辦公套件&#xff0c;人們首先想到的還是微軟 Office 套件&#xff0c;其中的Word、 Excel 以及PPT&#xff0c;但用戶體驗并不如意。但現在&#xff0c;蘋果用戶…

A tutorial video for MindManager for free

MindManager 2016 for Windows Essential Training 本人學習的時候使用的是MindManager 2018版本的&#xff0c;和2016版本差異不大。 轉載于:https://www.cnblogs.com/kelamoyujuzhen/p/10253278.html

Google, 請不要離開我們!

雖然我是.net陣營, 力挺Silverlight, 但是我真心希望谷歌留在中國, 如果她能夠靠談判求的言論自由的權利, 那將對中國的擁有自由信仰的一族產生重大的影響. 谷歌離開了中國, 不是她想拋棄中國市場, 而是中國決策者背叛了人性. 在此留下 Google 2010年1月14日的logo, 智慧的幽默…

高級php面試題及部分答案

轉載鏈接&#xff1a;http://www.2cto.com/kf/201304/201112.html 一. 基本知識點 1.1 HTTP協議中幾個狀態碼的含義:503 500 401 403 404 200 301 302。。。 200 : 請求成功&#xff0c;請求的數據隨之返回。 301 : 永久性重定向。 302 : 暫時行重定向。 401 : 當前請求需要用…

iec104點號_IEC104報文流程(有常用類型標識解釋)

參數地址圍類別97版基地址2002版基地址遙信1H------400H1H------4000H遙測701H------900H4001H------5000H遙控B01------B806001H------6100H設點B81H------C00H6201H------6400H電度C01H------C80H6401H------6600H遙測和遙信個數不設置上限&#xff0c;可以沒有上限限制&…