docker映象與docker容器

2022-09-14 23:36:20 字數 3371 閱讀 3280

映象與容器的關係

映象:(例如系統安裝映象)

已經裝好環境的虛擬機器(執行一次 就是乙個容器(新的作業系統))

! 當作是容器的 」源**「

如同物件導向中的類

容器: (裝好的系統)

乙個乙個的作業系統,或者是已經裝好東西的系統

如同物件導向的物件

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,並編輯...