1. docker簡介
- Docker 是一個應用打包、分發、部署的工具
- 你也可以把它理解為一個輕量的虛擬機,它只虛擬你軟件需要的運行環境,多余的一點都不要,
- 而普通虛擬機則是一個完整而龐大的系統,包含各種不管你要不要的軟件。
2. 相關概念
2.1 容器
輕量化的運行實例,包含應用代碼、運行時環境和依賴庫。通過鏡像創建,可以理解為一個簡易的linux系統。
2.2 鏡像
只讀模板,定義了容器的運行環境(如操作系統、軟件配置等)。
2.3 倉庫
存放鏡像的地方,分為公有倉庫和私有倉庫
3. 安裝
- 以macos為例(命令行安裝)
brew install --cask docker
- 啟動docker
open -a Docker
4.配置鏡像加速
- 打開docker-設置- Docker Engine
"registry-mirrors": ["https://docker.m.daocloud.io/","https://huecker.io/","https://dockerhub.timeweb.cloud","https://noohub.ru/","https://dockerproxy.com","https://docker.mirrors.ustc.edu.cn","https://docker.nju.edu.cn","https://xx4bwyg2.mirror.aliyuncs.com","http://f1361db2.m.daocloud.io","https://registry.docker-cn.com","http://hub-mirror.c.163.com","https://docker.mirrors.ustc.edu.cn"]
點擊 Apply & Restart 重啟 Docker。
- 驗證 Docker 運行
docker run hello-world
5. docker常用命令
5.1 幫助命令
docker --version # 顯示版本信息
docker info # 顯示系統信息
docker 命令 --help # 萬能命令
5.2 鏡像命令
docker images # 查看所有本地的主機上的鏡像# 可選項-a, -all # 列出所有鏡像-q, --quiet # 只顯示鏡像的id
docker search # 搜索鏡像# 可選項
--filter=STARS=3000 # 搜索出來的鏡像是STARS大于3000的
docker pull # 下載鏡像
docker rmi # 刪除鏡像
docker rmi -f 容器id # 刪除指定鏡像
docker rmi -f 容器id 容器id 容器id 容器id # 刪除多個鏡像
docker rmi -f $(docker images -aq) # 刪除全部鏡像
5.3 容器命令
- 說明: 有了鏡像才可以創建容器。下載一個nginx鏡像進行測試學習
docker pull nginx
- 新建容器并啟動
docker run [可選參數] image# 參數說明
--name="Name" 容器名字
-d 后臺方式運行
-it 使用交互方式運行,進入容器查看內容
-p 指定容器端口 -p 8080:8080-p ip:主機端口:容器端口-p 主機端口:容器端口 (常用)-p 容器端口
-p 隨機指定端口
測試,啟動并進入容器
(base) 123@myiy ~ % docker run -it nginx /bin/bash
root@70276d8feeeb:/# ls
bin dev docker-entrypoint.sh home media opt root sbin sys usr
boot docker-entrypoint.d etc lib mnt proc run srv tmp var
root@70276d8feeeb:/# exit
- 列出所有運行的容器
docker ps 命令-a # 列出正在運行的容器+歷史運行過的容器
-n=? # 最近創建過的容器
-q # 只顯示容器的編號
- 退出容器
exit # 直接容器退出并停止
ctrl + P + Q # 容器不停止退出
- 刪除容器
docker rm 容器id # 刪除指定容器,不能刪除正在運行的容器
docker rm -f $(docker ps -aq) # 刪除所有容器
docker ps -a -q|xargs docker rm # 刪除所有容器
- 啟動和停止容器
docker start 容器id
docker restart 容器id
docker stop 容器id
docker kill 容器id
5.4 常見其他命令
- 后臺啟動命令
docker run -d 鏡像名
- 查看日志
docker logs -f -t --tail 容器,沒有日志
- 查看容器中進程信息
docker top 容器id
- 查看鏡像元數據
docker inspect 容器id
- 進入當前正在運行的容器
docker exec -it 容器id /bin/bash
或者
docker attach 容器id
- 從容器內拷貝文件到主機(拷貝是手動的,未來使用-v卷技術,實現自動)
docker cp 容器id:容器內路徑 目的主機路徑
6. 作業練習
Docker安裝nginx
# 1,搜索鏡像
# 2.下載鏡像
docker pull nginx
# 3.運行測試
docker run -d --name nginx01 -p 3344:80 nginx-d: 后臺運行--name : 給容器命名-p 宿主機端口:容器端口
# 4.進入容器
docker exec -it nginx01 /bin/bash
docker安裝tomcat
# 0.官方(用完即刪除)
$ docker run -it --rm tomcat:9.0# 1.下載鏡像
docker pull tomcat:9.0
# 2.啟動運行
docker run -d --name tomcat01 -p 3355:8080 tomcat
# 3.進入容器
docker exec -it tomcat01 /bin/bash