1. 程式人生 > 其它 >Linux中使用Makefile來執行QuestaSim

Linux中使用Makefile來執行QuestaSim

單體Docker
  • Docker概述
Docker出現的契機:解決專案中的環境問題。docker的圖示:鯨魚上放了許多集裝箱,也映射了docker的核心思想——隔離。每個箱子是互相隔離的。隔離機制也可以將linux伺服器利用到極致 docker的歷史: 2010年出現dotcloud,2013年開源後使用人數增多。2014年Docker1.0釋出,基於Go語言開發。Docker優勢是非常輕巧,在Docker之前一般都是使用虛擬機器,非常笨重。Docker是容器技術,也屬於一種虛擬化技術。一般linux最核心的環境不過4MB。 docker與虛擬技術 虛擬機器技術缺點:資源佔用多、冗餘步驟多、啟動慢 容器化技術:不是模擬一個完整的作業系統 差異點:
  1. 傳統虛擬機器先虛擬出一套硬體,執行完整的作業系統,再在系統上執行軟體
  2. 容器內的應用直接執行在宿主機的內容,容器本身無核心,也沒有硬體,且容器間互相隔離,檔案系統都是不一樣的
優勢:
  1. 應用更快速的交付和部署
    • 傳統交付需要藉助文件、安裝程式
    • docker打包映象後釋出測試,一鍵執行
  2. 更便捷的升級和擴縮容
    • 部署應用快捷、專案打包為映象後擴充套件方便
  3. 更簡單的系統運維
    • 開發、測試等環境高度一致
  4. 更高效的計算資源利用
    • 核心級別的虛擬化,在一臺物理機上可執行多個容器例項,伺服器效能充分利用
Docker安裝 docker架構圖: 名詞解釋:
  1. 映象:相當於一個模板,通過映象來建立容器。一個映象可以建立多個容器
  2. 容器:通過容器可以獨立執行一個或一個組應用,有啟動、停止、刪除等基本操作
  3. 倉庫:存放映象的地方,有共有倉庫和私有倉庫
更換阿里雲映象地址:yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 安裝教程(linux):https://docs.docker.com/engine/install/centos/ 配置阿里雲映象加速(教程地址:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors):
#修改daemon配置檔案/etc/docker/daemon.json來使用加速器
sudo
mkdir -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命令 docker工作原理 docker是一個Client-Server結構的系統,docker的守護程序執行在主機上,通過socket從客戶端訪問。DockerServer接收到DockerClient的指令,就會執行這個命令。docker中容器之間相互隔離,外部不能直接訪問容器。 docker比vm快的原因 vm對比dc架構: docker比vm少了一層GuestOS。直接利用宿主機的核心。因此在新建容器時,無需想vm一樣載入一個作業系統核心,省略了這個複雜的過程,載入時間是秒級的 -a, --allShow all images (default hides intermediate images)#列出所有映象 --digestsShow digests -q, --quietOnly show image IDs #只顯示映象ID
      • docker search搜尋映象
-f, --filter filterFilter output based on conditions provided#過濾搜尋 例如:docker search --filter=stars=5000 #尋找stars大於等於5000的映象
      • 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
高階應用: docker composDocker叢集 dockerswarmDocker叢集管理(簡化版k8s) CI/CD jenkins P11