Linux中使用Makefile來執行QuestaSim
阿新 • • 發佈:2021-11-11
單體Docker
- Docker概述
- 傳統虛擬機器先虛擬出一套硬體,執行完整的作業系統,再在系統上執行軟體
- 容器內的應用直接執行在宿主機的內容,容器本身無核心,也沒有硬體,且容器間互相隔離,檔案系統都是不一樣的
- 應用更快速的交付和部署
- 傳統交付需要藉助文件、安裝程式
- docker打包映象後釋出測試,一鍵執行
- 更便捷的升級和擴縮容
- 部署應用快捷、專案打包為映象後擴充套件方便
- 更簡單的系統運維
- 開發、測試等環境高度一致
- 更高效的計算資源利用
- 核心級別的虛擬化,在一臺物理機上可執行多個容器例項,伺服器效能充分利用
- 映象:相當於一個模板,通過映象來建立容器。一個映象可以建立多個容器
- 容器:通過容器可以獨立執行一個或一個組應用,有啟動、停止、刪除等基本操作
- 倉庫:存放映象的地方,有共有倉庫和私有倉庫
#修改daemon配置檔案/etc/docker/daemon.json來使用加速器Docker命令 docker工作原理 docker是一個Client-Server結構的系統,docker的守護程序執行在主機上,通過socket從客戶端訪問。DockerServer接收到DockerClient的指令,就會執行這個命令。docker中容器之間相互隔離,外部不能直接訪問容器。 docker比vm快的原因 vm對比dc架構: docker比vm少了一層GuestOS。直接利用宿主機的核心。因此在新建容器時,無需想vm一樣載入一個作業系統核心,省略了這個複雜的過程,載入時間是秒級的
sudomkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://1fd77tzz.mirror.aliyuncs.com"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker
- 幫助命令
- docker version版本資訊
- docker info系統和容器相關資訊
- docker --help幫助 ,官網文件地址:https://docs.docker.com/engine/reference/commandline/
- 映象命令
- dockerimages檢視所有本地的主機上的映象
- docker search搜尋映象
- dockerpull下載映象
格式:docker pull 映象名[:tag](版本) Using default tag: latest #如果不寫tag則是預設mlatest latest: Pulling from library/mysql a10c77af2613: Pull complete #分層下載,docker images的核心:聯合檔案系統 b76a7eb51ffd: Pull complete #當下載其他映象時,若有相同層的映象,則不會重新下載,直接共用 258223f927e4: Pull complete 2d2c75386df9: Pull complete 63e92e4046c9: Pull complete f5845c731544: Pull complete bd0401123a9b: Pull complete 3ef07ec35f1a: Pull complete c93a31315089: Pull complete 3349ed800d44: Pull complete 6d01857ca4c1: Pull complete 4cc13890eda8: Pull complete Digest: sha256:aeecae58035f3868bf4f00e5fc623630d8b438db9d05f4d8c6538deb14d4c31b #簽名 Status: Downloaded newer image for mysql:latest docker.io/library/mysql:latest #真實地址,docker pull mysql 等價於docker pull docker.io/library/mysql:latest
- docker rmi刪除映象 rm代表刪除,i代表image
-f, --force Force removal of the image #強制刪除映象例如: 刪除指定映象:docker rmi -f ID/image名, 刪除全部映象:docker rmi -f $(docker images -aq)
- 容器命令(有映象才可以建立容器)
- run:啟動容器。先在本機尋找映象,找不到則去dockerHub上下載,還找不到就報錯,找到了就下載到本地,並使用
docker run [可選引數] image --name="Name" 容器名字,用於區分容器 -d 後臺方式執行 -it 使用互動方式執行,進入容器檢視內容 -p 使用容器的埠,-p 8080:8080 -p ip:主機埠:容器埠 -p 主機埠:容器埠(常用) -p 容器埠 容器埠 -P(大寫) 隨機指定埠#啟動並進入映象,互動工具使用bash
[root@VM-0-7-centos ~]# docker run -it centos /bin/bash [root@2b902d8d2492 /]# ls #映象內部是一個並不太完整的centos系統,很多命令是沒有的 bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var# exit 退出主機
exit 直接停止容器並退出 Ctrl + P + Q 容器不停止 [root@2b902d8d2492 /]# exit exit [root@VM-0-7-centos ~]# ls / bin boot data dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var [root@VM-0-7-centos ~]#docker ps命令: -a 列出當前正在執行的容器和歷史執行過的容器 -n=? 列出最近建立的容器 ?為個數 -q 只顯示容器編號
[root@VM-0-7-centos ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES [root@VM-0-7-centos ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 2b902d8d2492 centos "/bin/bash" 3 minutes ago Exited (0) 2 minutes ago vibrant_torvalds 184d14eb101f feb5d9fea6a5 "/hello" 8 days ago Exited (0) 8 days ago stoic_fermi [root@VM-0-7-centos ~]#docker rm刪除容器
docker rm 容器名 刪除指定容器,不能刪除正在執行的 docker rm -f 強制刪除容器 docker rm -f $( docker ps -aq ) 強制刪除所有容器,等同於docker ps -a -q | xargs rm 使用管道刪除
容器的啟動、重啟、停止和強制停止
容器基本操作命令
docker start id docker restart id docker stop id docker kill id
- Docker映象
- 容器資料卷
- DockerFile
- Docker網路原理
- IDEA整合Docker