筆記 docker入門筆記

2021-09-08 05:20:37 字數 3890 閱讀 6433

安裝

sudo apt-get remove docker docker-engine docker-ce docker.io

sudo apt-get update

sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common  (使apt能接受https的ppa庫)

curl -fssl |www.jimeiyulept.com  sudo apt-key add -       (docker官方gpg金鑰)

sudo add-apt-repository "deb [arch=amd64]   download.docker.com/linux/ubuntu $(lsb_release -cs) stable"     (ppa庫)

sudo apt-get update

sudo apt-get install -y docker-ce      (安裝最新版)

如果不想要最新版:

apt-cache madison docker-ce       (檢視版本列表)

sudo apt-get install docker-ce=(指定版本安裝

建立docker使用者組

sudo groupadd docker            (應該不需要執行,已經有了)

sudo usermod -ag docker $user     (將當前使用者新增到附加組群docker)

重新登入使用者賬戶使生效

驗證systemctl status docker     (啟動狀態)

sudo systemctl start www.dasheng178.com docker    (啟動,或 sudo service docker start)

sudo docker run hello-world     (官方提供hello world程式)

docker概念

docker客戶端        命令列允許時給客戶端傳送命令,客戶端分發到指定容器

docker daemon 守護程序        docker允許依賴的程序

docker image 映象        docker啟動前需要指定之前製作的映象(即原始碼,唯讀模式)

docker container 容器        docker執行映象的拷貝於虛擬機器上(執行後的映象為叫容器,即映象的例項,讀寫模式),可對其停止執行,重新執行,內部命令操作,修改後重新打包為新映象,乙個映象可執行為多個容器

docker registry 倉庫        docker映象儲存的位置,有公有倉庫與私有倉庫

互動式容器與守護式容器        互動式容器:當前命令程序執行完畢容器即退出;守護式容器:當前命令程序與該程序啟動的程序都執行完畢才退出,通常沒有互動式程式時使用

建立映象並執行生成容器

準備用於執行的springboot專案jar包 springboot-1.0.jar

新建任意名字資料夾a,進入資料夾,將jar包拷貝到資料夾內

新建dockerfile檔案,輸入如下內容並儲存:

檔案中,為了方便,繼承了現有的jdk8的docker映象(hub.c.163.com/xbingo/jdk8)的最新版本

在該目錄下直接執行以下命令新建映象:

docker build -t uettydkr/test:1.0 .        (不要漏了最後的點,最後那個點代表當前目錄,倒二引數映象名可任意設定,-t 為tag) 

docker images            可看到uettydkr/test:1.0已進入現有映象列表中

docker run -p 80:8080 -t uettydkr/test:1.0          啟動docker映象新建立乙個容器(-p 表示將主機80埠對映到容器內部的8080埠,--name=myname :手動分配名字,-t 偽tty終端,-d 守護程序的方式後台執行(預設互動程序方式),cmd為.s**件時需要-d否則sh執行完docker就退出了),如果dockerfile中沒有定義命令cmd執行不成功,這時可在docker run的最後面新增執行命令手動指定

容器停止與啟動

docker stop 8d43            停止正在執行的容器(發出結束的訊號,8d43為通過docker ps 檢視到的name前面幾個字元,stop時name無須填完整,只要docker能識別不引起歧義就行)

docker start -i 8d43            重新執行容器(-i 標準輸入始終開啟)

docker kill 8d43            快速強制停止容器

容器與映象的刪除

docker rm 8d43            刪除已經停止的容器(需先停止容器)

docker rmi uettydkr/test:1.0            刪除映象(需先刪除該映象的所有容器例項)

容器埠對映

docker run -p -i -t uettydkr/test:1.0            對容器暴露的所有埠進行對映

docker run -p 8080 -i -t uettydkr/test:1.0            指定容器8080埠對映到宿主機的隨機埠

docker run -p 80:8080 -i -t uettydkr/test:1.0            容器的8080埠對映到宿主機的80埠

docker run -p 0.0.0.0:8080 -i -t uettydkr/test:1.0            指定容器ip和容器的埠

docker run -p 0.0.0.0:80:8080 www.thd540.com  -i -t uettydkr/test:1.0            指定容器ip,容器8080埠對映到宿主機的80埠

docker port 8d43            檢視埠對映情況

其他操作命令一覽

docker ps                        檢視各映象狀態(無引數:列出執行的容器,-a:列出所有的容器,-l:列出最後執行的容器)

docker exec -it 8d43 /bin/bash            容器中啟動新程序,非同步方式進入docker容器命令列(如果容器構建使用的是/bin/sh,最後乙個引數換成/bin/sh)

docker images            可看到uettydkr/test:1.0已進入現有映象列表中

docker attach 8d43           附加到docker容器,同步方式進入容器命令列(如果某個客戶端阻塞了,該方式進入也會被阻塞,因此不推薦)

docker inspect 8d43            列出容器json格式資訊

ctrl+p && ctrl+q            退出互動式容器,容器不會停止執行(先後按下這兩個命令)

exit           對互動式容器會退出

docker logs 8d43            返回日誌(預設返回所有日誌,-f:持續返回日誌,-t:返回的日誌增加時間戳,--tail 10 指定顯示最新的10條日誌)

docker top 8d43            檢視執行中容器的程序情況

docker info            檢視docker資訊,包括映象儲存位置

遠端映象倉庫

docker官方倉庫位址

docker search ubuntu             --automated=false true時只選中自動化構建出的映象;--no-trunc=false true時不以截斷的方式輸出;-s或--stars=0 限制顯示結果的最低星級

docker pull ubuntu:14.04            從遠端拉取映象

Docker入門筆記

docker是乙個容器引擎,我們可以把我們的應用和依賴環境 比如配置檔案 庫等 打包到這個容器中。值得注意的是,這個容器是可移植的,我們可以把程式打包,然後發布到另一台機器上。docker採用c s架構,客戶通過api建立docker容器。此圖包含了docker最重要的三個概念 映象 容器 倉庫 來...

Docker入門筆記

docker是乙個開源的引擎,可以輕鬆的為任何應用建立乙個輕量級的 可移植的 自給自足的容器。開發者在筆記本上編譯測試通過的容器可以批量地在生產環境中部署,包括vms 虛擬機器 bare metal openstack集群和其他的基礎應用平台。docker系統有兩個程式 docker服務端和dock...

Docker入門筆記

作用 docker將開發環境和 直接打包,部署時無需關注環境問題。名詞 容器 虛擬機器,相當於物件 映象 容器的源 相當於類 安裝等常用命令 yum install docker systemctl start docker systemctl stop docker systemctl statu...