映象與容器的關係
映象:(例如系統安裝映象)
已經裝好環境的虛擬機器(執行一次 就是乙個容器(新的作業系統))容器: (裝好的系統)! 當作是容器的 」源**「
如同物件導向中的類
乙個乙個的作業系統,或者是已經裝好東西的系統如同物件導向的物件
docker search 包名 # 搜尋包 一般都是去hub.docker.com
# docker search python # 搜尋乙個只是裝好了python的環境
docker pull 包名
# docker pull centos:7 # 通過: 指定版本
# 刪除(用的比較少) 除了通過映象id刪除,也可以通過名字刪除
# 如果映象已經有容器了,那就不能(該)刪除,(不管容器是否是啟動的)
docker rmi 映象id # 刪除映象 # 映象id可以只輸入前三位
docker rmi `docker images -q` # 刪除所有的映象
關於搜尋映象
其實不怎麼建議使用docker search ,更建議直接去hub.docker搜尋
映象跑起來就是容器了
docker ps # 檢視執行中的容器
# 預設是檢視執行中的容器
-a 檢視所有容器(不管你有沒有執行)
-l 檢視最後一次執行的容器
-f status=exited 檢視停止的容器
啟動容器(建立)(基於images):
docker run
# docker run -id --name 自己取得的容器名 映象名() /bin/bash
# # docker run -di --name=mysql8 c0cdc95609f1 /bin/bash
-i:表示執行容器
-t:表示容器啟動後會進入其命令列。加入這兩個引數後,容器建立就能登入進去。即分配乙個偽終端。
--name :為建立的容器命名。
-v:表示目錄對映關係(前者是宿主機目錄,後者是對映到宿主機上的目錄),可以使用多個-v做多個目錄或檔案對映。注意:最好做目錄對映,在宿主機上做修改,然後共享到容器上。
-d:在run後面加上-d引數,則會建立乙個守護式容器在後台執行(這樣建立容器後不會自動登入容器,如果只加-i -t兩個引數,建立後就會自動進去容器)。
-p:表示埠對映,前者是宿主機埠,後者是容器內的對映埠。可以使用多個-p做多個埠對映
來自 啟動容器(已經有了的容器)
docker start 容器id/名字
停止容器
docker stop 容器id/名字
重啟容器
docker restart 容器id/名字
進入容器內部
docker exec -it 容器id/名字 /bin/bash
docker exec -it 容器id/名字 sh # 如果上面的辦法不行,就用這個辦法
退出容器內部
exit
刪除容器
docker rm 容器名字/id # 正在執行的容器不能刪除
容器拷貝向裡面拷貝:
# 宿主機》容器
docker cp 需要拷貝的檔案或目錄 容器名稱:容器目錄
來自 向外面拷貝:
# 容器》 宿主機
docker cp 容器名稱:容器目錄 需要拷貝的檔案或目錄
來自
目錄對映(掛載)目錄對映(掛載)
docker run -di -v 宿主機路徑:內部路徑 --name=新容器名 映象名
# docker run -di -v /usr/local/myhtml:/usr/local/myhtml --name=mycentos3 centos:7
# 如果建立的時候是 it 而不是id,那麼它會自動進去,然後推出來的時候就會自動關閉
檢視容器的ip詳細資訊(例如檢視ip)檢視容器ip位址
docker inspect 容器名字/id
# 會有一堆resft介面(json 格式)
# 我們自需要去看他的ip位址
# 這個方法是單看ip位址
docker inspect --format='}' 容器名稱(容器id)
mysql的docker官方指引
docker run --name=sqls8 --restart on-failure -d mysql/mysql-server:8.0
# 此方法來自mysql官方的docker指引教程(
# 啟動mysql容器服務
docker start sql8
# 檢視mysql的初始root密碼(mysql8.0會自動隨機分配)
docker logs sqls8 2>&1 | grep generated # windows沒有自帶grep命令,建議換成findstr 或者就直接使用docker logs sqls8 2>&1 然後ctrl + f 手動查詢 generated
# 下面那一坨就是mysql的預設密碼了,拿到密碼我們就可以在外部進行連線了(到這裡我就不演示了,因為目的已經達到了)
如果想要自己開始就設定密碼的話,建立容器的命令就應該是:
docker run -id -p 3306:3306 --name=sql8 -e mysql_root_password=123456 -d mysql
容器 打包為 映象,然後把映象打包為映象檔案然後通過映象生成更多容器,或者把映象檔案拷貝給別人用(檔案會比較大)
# 容器-> 映象
docker commit 容器名字 映象名字
# docker commit sql8 sql8_1
# 映象-> 映象檔案
docker s**e -o 壓縮後檔名 映象名字
# docker s**e -o sql8_1.tar sql8_1
# 打包好後,就可以直接拷貝給別人用了
# 映象檔案->映象
docker load -i 檔名
# docker load -i .\sql8_1.tar
映象檔案-> 容器 我這就不說了, 上面有…… 容器 Docker學習 Docker映象
一 列出映象 命令 docker images optsions repositort a 標識列出所有 f 寫過濾條件 no trunc 不截斷id q 只顯示唯一id repository是倉庫名字 registry代表的是大庫 tag標籤名字 對應版本,id唯一標識 庫名字 標籤 對應乙個id...
Docker 容器與映象
映象 image 即是一堆唯讀層視角檔案,上一層檔案指標指向至下一層,直到最底層檔案。參照如圖,左邊為詳細的檔案系統,右邊為該檔案系統的入口視角 docker映象利用 union fs 聯合檔案系統 的技術,將其設計為分層儲存的架構。上一層映象都是依賴於下一層映象上基礎上再增加的資源 配置等。簡單理...
Docker筆記 Docker上傳映象
在應用商店選擇harbor,進行安裝 選擇乙個節點配置 harbor host true ip hostname fqdn hdp165 安裝完成後,需要進行docker image的上傳 需要對docker client進行配置 1.檢視cat etc docker daemon.json,並編輯...