前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。
PS :個人所有讀書筆記只記錄個人想要的內容,很可能原書大量內容沒有納入筆記中... ...?
以下全文內容出自書目:《 Docker 技術入門與實戰 》
1. Docker 鏡像:一個只讀模板,是創建容器的基礎 。
2. Docker 容器:從鏡像創建運行的實例 ,可以看作是一個簡易版本的 Linux 系統環境 。
3. Docker 倉庫:集中存放鏡像文件的場所 。
4. Docker 目前只能運行在 64 位平臺上,并要求內核版本不低于 3.10 (可用 uname -a 或者 cat /proc/version 查看自己內核詳情)。
5. Ubuntu 安裝 Docker :apt-get install -y docker-engine? ( 見書P12 ) 。
6. CentOS 安裝 Docker :
7. docker 服務開啟/重啟方式:systemctl start docker.service? ?、 service docker restart? 。
8. 查看 docker 版本信息:? docker version 。
9. 查看鏡像 : docker images?
-a : 列出所有鏡像。--digests=true|false :列出鏡像數字摘要,默認為否。-f ,--filter=[] : 過濾列出鏡像,如 dangling=true 只顯示沒有被使用的鏡像 。--format="TEMPLATE":控制輸出格式,如 ID 代表 ID 信息, .Repository 代表倉庫信息 。--no-trunc=true|false : 是否截斷輸出結果中太長的部分 。-q ,--quiet=true|false : 僅輸出 ID ,默認為否 。
--------------------------------------??以下更新于2018.7.9? --------------------------------------
10.? 查看鏡像創建過程: docker history? 鏡像名。
11.? 刪除鏡像: docker rmi 鏡像名、鏡像ID(當鏡像只剩下一個 tag 時會徹底刪除鏡像,命令 docker images 可查看鏡像)。
12. 查看所有容器 : docker ps -a 。
13. 鏡像導出到本地文件:docker save -o xxx.tar 原鏡像名。
14. 鏡像導入: docker load <? 鏡像名 或 docker load --input? 鏡像名,如 docker load < xxx.tar 。
?????( A導出 + B導入 + run 可以把一個工程從服務器 A 拷貝到服務器 B?并部署運行,見第 20、21 點 。)?
15. 上傳鏡像到倉庫 :docker push ,默認是上傳到 Docker Hub 官方倉庫 。
16. 創建容器 : docker? create 鏡像名,參數如下:? (另一種創建方式見第 28 點。)
-d:后臺運行。-i:保持標準輸入打開,默認為 false 。--net="bridge" :指定容器網絡模式 。--rm=true :容器退出后自動刪除 ( 不能和 -d 同時使用 )。-t: 分配一個偽終端,默認為 false 。-v | --volume=本機目錄 : 容器目錄 : 掛載主機上文件卷到容器 。--volume-from=[ ] : 從其它容器掛載卷 。-w | --workdir=" " : 容器的默認工作目錄 。 -e | --env=[ ] :指定容器環境變量 。-h | --hostname=" " : 指定容器內的主機名 。 --link=[ < name or id >:alias ] :鏈接到其它容器 。 --name=" " :指定容器名 。
17. 終止運行中的容器 : docker stop 。
18. 進入容器以便可以執行任意命令: docker exec 容器名、id,如:docker exec -it 鏡像id /bin/bash 。參數如下:
--privileged=true :給執行命令以最高權限,默認為 false 。-u | --user=" " :執行命令的用戶名或 ID 。-i : 開啟標準輸入 。 -t:分配偽終端,默認為 false 。
19 . 刪除容器:docker rm ,參數如下:
-f: 強行終止并刪除運行中的容器 。-l | --link=false : 刪除容器鏈接,但保留容器 。-v | --volumes=false :刪除容器掛載的數據卷 。
20. 導出容器:docker export? 。? ??
-o 指定導出的 tar 文件,也可以直接重定向實現
? ? 如: docker export -o test.tar 容器名、id? 或 docker export 容器名、id > test.tar 。
21. 導入已導出的 tar 文件生成鏡像:docker import 。? ?
-c | --change=[ ] 導入時執行對容器進行修改的 Dockerfile 。
? ? 如: docker import test.tar? -test/ubuntu:v1.o 。
22. docker load 和 docker impoer 區別:?
load 命令導入鏡像存儲文件到鏡像庫,將保存完整記錄,體積大。import 命令導入一個快照到本地鏡像庫,會丟棄所有歷史記錄和元數據信息。
23. 搭建本地私有倉庫:docker run -d -p 5000:5000 registry ,見書 P49 。
這會自動下載并啟動一個 registry 容器,創建本地的私有倉庫 。? ? ?
-v : 將鏡像文件存放在本地指定路徑,默認是將倉庫創建在 /tmp/registry 目錄下 。
如:docker run? -d? -p? 5000:5000? -v? /opt/data/registry:tmp/registry? registry 則會將上傳的鏡像放到?/opt/data/registry 目錄下 。
24. 數據卷是可供容器使用的特殊目錄,它將主機操作目錄直接映射進容器。
-v 可以在 docker run 運行的容器內創建一個數據卷。多次重復使用則創建多個數據卷。- p 是將容器服務暴露的端口,是自動映射到本地主機的臨時端口 。
如:docker run -d -p --name web -v /webapp train python app.py?
用鏡像 train? 創建了容器 web ,并創建了一個數據卷掛載到容器的?/webapp 目錄 。
-v 也可以指定掛載一個本地已有目錄到容器中去作為數據卷 。
掛載數據卷的默認權限是 讀寫,可以用 ro 指定為只讀,這樣容器對所掛載數據卷內的內容就不能修改了 。?
如: docker run -d -p --name web -v /src/webapp : /opt/web : ro??train python app.py?
上面是加載主機的?/src/webapp 目錄到容器的?/opt/web 目錄 ,并且是只讀 。
// 25. 利用數據卷容器來遷移數據見書 P55 。
26. 安裝 ping :apt-get install -yqq inetutils-ping 。
27. 通常 Dockerfile 分為四部分:基礎鏡像信息、維護者信息、鏡像操作指令、容器啟動時執行指令。
參數說明:
28. docker build 創建容器 :docker build Dockerfile文件名? 。
-t:指定生成鏡像的標簽名,即 tag 。-f:若 Dockerfile 不在當前路徑下,可使用 -f 來指定 Dockerfile 路徑 。
如: docker build -t sshd:docker .? ? 最后一個“.”表示使用當前路徑下的 Dockerfile 文件 。
// 29. docker 安裝和使用各個操作系統見書 P71 。
30. 安裝 openssh-server : apt-get install openssh-server -y 。
31.?查看端口占用: netstat -tunlp 。
// 32. Docker Web 服務與應用(Apache、Nginx、Tomcat、Jetty、LAMP、CMS)見書 P83 。?
33. 安裝運行 mysql :( 使用官方鏡像快速啟動一個 mysql 服務實例 )
?????docker run --name jy_mysql -e MYSQL_ROOT_PASSWORD=123 -d? mysql:latest 。
????執行完,mysql 就在 docker 中安裝好了,可用 navicat 直接訪問 。
????本地找不到的鏡像會自動從Docker 倉庫中下載最新版本。
????進入 mysql 容器: docker exec -it jy_mysql bash ,查看日志 :docker logs jy_mysql 。
34. 安裝運行 MongoDB: docker run --name mongoDB -d mongo 。
35. 安裝運行 Redis:docker run --name redis -d redis 。
36. 安裝運行? memcache : docker run --name memcache -d memcached 。
// 37. 搭建 cassandra 集群見書 P109 。
??????????Docker 快速部署 RabbitMQ、Celery、Hadoop、Spark、Elasticsearch 見書P112 。
?
--------------------------------------??以下更新于2018.7.28? --------------------------------------
?
38.? ?Docker Compose安裝命令:sudo pip install -U docker-compose。
-f | --file :指定?compose 模板文件,默認為 docker-compose.yml ,可多次指定。-p | --projrct-name:指定項目名稱,默認使用所在目錄名稱為項目名。--x-networking :使用 docker 可插撥網絡后端特性。--x-network-driver DRIVER :指定網絡后端驅動,默認為 brige。-v | --version :輸出版本并退出。--verbose :輸出更多調試信息。
?