一.官網安裝文檔 (基本按官方文檔安裝)
Install Docker Engine on Ubuntu | Docker Docs
二.安裝步驟
1.docker 需要64位操作系統、linux內核要在3.1以上
#uname -r
2.卸載可能存在的舊版本
#sudo apt-get remove docker docker-engine docker-ce docker.io
3.更新apt包索引
#sudo apt-get update
4.安裝依賴
#sudo apt-get install ca-certificates curl gnupg
5.設置GPG key 權限
#sudo install -m 0755 -d /etc/apt/keyrings
6.添加Docker官方的GPG密鑰
#curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
7.獲取執行權限
#sudo chmod a+r /etc/apt/keyrings/docker.gpg
8.將倉庫添加到Apt源
echo \"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
#sudo apt-get update
9.安裝docker
#sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
三、docker啟動與關閉命令
1.啟動
#sudo?systemctl start?docker
2.關閉
#sudo systemctl stop?docker
3.查看狀態
#sudo systemctl status docker
4.查看端口號(docker 默認2375)
#netstat -ntlp
5.設置開機自啟
#sudo systemctl enable docker
6.查看docker版本
#sudo docker version
7.查看Docker概要信息
#sudo docker info
8.查看Docker總體幫助文檔
#sudo docker --help
四、docker鏡像命令
1.列出本地主機上的鏡像
#sudo docker images
參數:
-a
:列出所有鏡像(含歷史鏡像)
-q
:只顯示鏡像ID
-f
:過濾
2.在遠程倉庫中搜索鏡像
#docker search 鏡像名稱
參數:
-f
:過濾
--limit 數量
:只展示前幾項
3.下載鏡像
#docker pull 鏡像名稱[:tag]
注:不加 tag 時,默認下載最新的鏡像(即tag為latest
)
4.查看占據的空間
#docker rmi 鏡像名稱/ID
5.刪除鏡像
#docker rmi 鏡像名稱/ID
6.刪除全部鏡像
#docker rmi -f $(docker images -qa)
五、容器命令
1.新建啟動容器
#sudo?docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
常用的參數:
--name
:為容器指定一個名稱
-d
:后臺運行容器并返回容器ID,也即啟動守護式容器
-i
:以交互模式(interactive)運行容器,通常與-t
同時使用
-t
:為容器重新分配一個偽輸入終端(tty),通常與-i
同時使用。也即啟動交互式容器(前臺有偽終端,等待交互)
-e
:為容器添加環境變量
-P
:隨機端口映射。將容器內暴露的所有端口映射到宿主機隨機端口
-p
:指定端口映射
-p
指定端口映射的幾種不同形式:
-p hostPort:containerPort
:端口映射,例如-p 8080:80
-p ip:hostPort:containerPort
:配置監聽地址,例如-p 10.0.0.1:8080:80
-p ip::containerPort
:隨機分配端口,例如-p 10.0.0.1::80
-p hostPort1:containerPort1 -p hostPort2:containerPort2
:指定多個端口映射,例如-p 8080:80 -p 8888:3306
2.啟動交互式容器(exit退出)
# -i 交互模式
# -t 分配一個偽輸入終端tty
# ubuntu 鏡像名稱
# /bin/bash(或者bash) shell交互的接口
docker run -it ubuntu /bin/bash
3.啟動守護式容器
#docker run -d 容器名
4.列出正在運行的容器
#docker ps [OPTIONS]
參數:
-a
:列出當前所有正在運行的容器+歷史上運行過的容器
-l
:顯示最近創建的容器
-n
:顯示最近n個創建的容器
-q
:靜默模式,只顯示容器編號
5.啟動已經停止的容器
#docker start/stop?容器ID或容器名
6.重啟容器
#docker restart 容器ID或容器名
7.強制停止容器
#docker kill 容器ID或容器名
8.刪除已經停止的容器
#docker rm -f 容器ID或容器名
一次刪除多個容器:
#docker rm -f ${docker ps -a -q}
或者
#docker ps -a -q | xargs docker rm
9.查看容器日志
#docker logs 容器ID或容器名
10.查看容器內運行的進程
#docker top 容器ID或容器名
11.查看容器內部細節
#docker inspect 容器ID或容器名
12.進入正在運行的容器,并以命令行交互:
#docker exec -it 容器ID bashShell
重新進入:#docker attach 容器ID
docker exec
和 docker attach
區別:
attach
直接進入容器啟動命令的終端,不會啟動新的進程,用exit
退出會導致容器的停止
exec
是在容器中打開新的終端,并且可以啟動新的進程,用exit
退出不會導致容器的停止
13.容器和宿主機文件拷貝
容器內文件拷貝到宿主機:#docker cp 容器ID:容器內路徑 目的主機路徑
宿主機文件拷貝到容器中:#docker cp 主機路徑 容器ID:容器內路徑
14.導入和導出容器
export
:導出容器的內容流作為一個tar歸檔文件(對應import
命令);
import
:從tar包中的內容創建一個新的文件系統再導入為鏡像(對應export
命令);
事例:
# 導出
# docker export 容器ID > tar文件名
docker export abc > aaa.tar# 導入
# cat tar文件 | docker import - 自定義鏡像用戶/自定義鏡像名:自定義鏡像版本號
cat aaa.tar | docker import - test/mytest:1.0.1
15.將容器生成新鏡像
#docker commit -m="提交的描述信息" -a="作者" 容器ID 要創建的目標鏡像名:[tag]
六、idea 連接docker
1.先安裝docker插件
2.修改docker遠程配置
#vim /usr/lib/systemd/system/docker.service
添加 -H unix:///var/run/docker.sock -H tcp://0.0.0.0:2375? ?(如下圖)
3.在左下解services添加連接、如下圖