Docker筆記(一) Docker基礎概述
阿新 • • 發佈:2021-10-25
Docker學習
Docker概述
Docker為什麼會出現?
特性 | 容器 | 虛擬機器 |
---|---|---|
啟動 | 秒級 | 分鐘級 |
硬碟使用 | 一般為 MB | 一般為 GB |
效能 | 接近原生 | 弱於 |
系統支援量 | 單機支援上千個容器 | 一般幾十個 |
Docker技術優點
- 更快速的交付和部署
- 更便捷的升級和擴縮容
- 更簡單的系統運維
- 更高效的計算資源利用
- 一致的執行環境
- 更輕鬆的遷移
Docker安裝
Docker基本組成
映象(image)
容器(container)
倉庫(repository)
安裝Docker
環境準備
安裝
1.0 解除安裝舊的版本
sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine
2.0 需要的安裝包
sudo yum install -y yum-utils
3.0 設定映象倉庫
國外
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
阿里雲(推薦使用,快!快!快!)
sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
4.0安裝docker相關內容
docker-ce 社群版
docker-ee 企業版(需要授權)
更新索引
yum makecache fast
安裝docker Engine
sudo yum install docker-ce docker-ce-cli containerd.io
5.0啟動docker
sudo systemctl start docker
檢視docker版本
sudo docker version
6.0測試hello-world
sudo docker run hello-world
7.0 檢視下載映象
sudo docker images
阿里雲映象加速
Docker常用命令
幫助命令
docker version # 顯示docker的版本資訊 docker info # 顯示docker的系統資訊,包括映象和容器的數量 docker --help # 幫助命令
幫助文件Reference documentation | Docker Documentation
映象命令
[root@node1 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest feb5d9fea6a5 3 weeks ago 13.3kB
# 解釋
REPOSITORY 映象的倉庫源
TAG 映象的標籤
IMAGE ID 映象的id
CREATED 映象的建立時間
SIZE 映象的大小
docker search搜尋映象
docker search mysql
docker pull 下載映象
docker pull mysql
docker rmi刪除映象
docker rmi -f 容器id
容器命令
注:先有映象測才能建立容器,下載centos映象
docker pull centos
新建容器並啟動
docker run [可選引數] image
# 引數說明
--name="Name" 容器名
-d 後臺方式執行
-it 使用互動方式執行,進入容器檢視內容
-p 指定容器的埠 -p 8080:8080
-p ip:主機埠:容器埠
-p 主機埠:容器埠(常用)
-p 容器埠
-P 隨機指定埠
啟動並進入容器
[root@node1 ~]# docker run -it centos /bin/bash
[root@40153b62f4de /]#
退出容器
# 直接容器停止並退出
[root@40153b62f4de /]# exit
exit
# 退後容器不停止
Ctrl+P+Q
檢視容器
# docker ps 命令
-a # 執行過的容器
-n=? #顯示最近建立的容器
-q #只顯示容器的編號
# 執行的
[root@node1 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
# 執行過的
[root@node1 ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
40153b62f4de centos "/bin/bash" 2 minutes ago Exited (0) 35 seconds ago optimistic_kalam
6509d33ff71c hello-world "/hello" About an hour ago Exited (0) About an hour ago nice_lewin
4e86a9fd5dd8 hello-world "/hello" About an hour ago Exited (0) About an hour ago great_carson
[root@node1 ~]#
刪除容器
docker rm 容器id
啟動和停止容器
docker start 容器id # 啟動容器
docker restart 容器id # 重啟容器
docker stop 容器id # 停止容器
docker kill 容器id # 強制停止容器
常用其他命令
後臺啟動容器
# 後臺啟動容器
docker run -d 映象名
# 常見的坑: docker容器使用後臺執行,就必須要有要一個前臺程序,docker發現沒有應用,就會自動停止。
檢視日誌命令
# 檢視日誌命令
docker logs [引數] [容器id]
# -tf 顯示日誌
# --tail [日誌條數]
docker logs -tf [容器id]
docker logs -tf --tail 10 [容器id]
檢視容器內部程序資訊
# 檢視容器內部的程序資訊
docker top [容器id]
檢視映象元資料
docker inspect [容器id]
進入當前正在執行的容器
#通常容器都是使用後臺執行
#方式一,進入容器開啟一個新的終端,可以在裡面操作(常用)
docker exec -it [容器id] /bin/bash
#方式二,進入正在執行的終端,不會啟動新的程序
docker attach [容器id]
從容器內拷貝檔案到主機
docker cp [容器id]:容器原始檔 主機目標檔案
#示例
docker cp [容器id]:/home/test.java test.java
Docker實操練習
部署nginx
搜尋映象
docker search nginx
下載映象
docker pull nginx
檢視映象
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 87a94228f133 9 days ago 133MB
hello-world latest feb5d9fea6a5 3 weeks ago 13.3kB
centos latest 5d0da3dc9764 5 weeks ago 231MB
啟動映象
# -d 後臺執行
# --name 宿主名字
# -p 宿主機埠:容器內埠
docker run -d --name nginx01 -p 3344:80 nginx
執行測試
[root@node1 ~]# curl localhost:3344
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>
<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>
<p><em>Thank you for using nginx.</em></p>
</body>
</html>
[root@node1 ~]#
進入容器
[root@node1 ~]# docker exec -it nginx01 /bin/bash
root@649edc671df1:/# whereis nginx
nginx: /usr/sbin/nginx /usr/lib/nginx /etc/nginx /usr/share/nginx
root@649edc671df1:/#
本篇內容是參考網路教程學習過程中的筆記
開發工作著,生活快樂著,留下總結,相互交流,共同進步