1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        一文入門Docker

        共 1652字,需瀏覽 4分鐘

         ·

        2020-08-12 16:33

        Docker簡介

        Docker是一個開源的應(yīng)用容器引擎,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個可移植的鏡像中,然后發(fā)布到任何流行的 Linux或Windows 機器上,也可以實現(xiàn)虛擬化。容器是完全使用沙箱機制,相互之間不會有任何接口

        Docker優(yōu)勢

        持續(xù)集成、版本控制、可移植性、隔離性和安全

        Docker的組成

        Docker組成

        ?鏡像(image):

        Docker鏡像就相當于是一個文件系統(tǒng),通俗來說就是為容器用來創(chuàng)建容器的

        ?容器(Container):

        Docker 利用容器 (Container) 獨立運行的一個或一組應(yīng)用,容器是用鏡像創(chuàng)建的運行實例,它可以被啟動、開始、停止、刪除,每個容器都是相互隔離的、保證安全的平臺,可以把容器看做是一個簡易版的Linux系統(tǒng)。

        容器就相當于Java中的對象,鏡像相當于Java中的類

        ?倉庫(Repository)

        倉庫是集中存放鏡像文件的場所

        倉庫注冊服務(wù)器 (Registry) 上往往存放著多個倉庫,每個倉庫中又包含了多個鏡像,每個鏡像有不同的標簽

        倉庫分為公開倉庫和私有倉庫兩種形式

        最大的公開倉庫是DockerHub存放了數(shù)量龐大的鏡像供用戶下載,國內(nèi)的公開倉庫包括阿里云等

        Docker的底層原理

        Docker的工作原理

        Docker是基于C/S結(jié)構(gòu)的系統(tǒng),Docker的守護進程運行在Linux服務(wù)器(宿主機)上,當我們在Liunx服務(wù)器上(Docker-Client)輸入Docker相關(guān)命令就會被發(fā)送給Doker-Server

        為什么Docker比VM(虛擬機)快

        1、Docker有著比虛擬機更少的抽象層,由于Docker不需要Hypervisor實現(xiàn)硬件資源虛擬化,運行在Docker容器上的程序直接使用的都是實際物理機的硬件資源,因此在CPU、內(nèi)存利用率上docker將會在效率上有明顯優(yōu)勢。

        2、當新建一個容器時,Docker不需要和虛擬機一樣重新加載一個操作系統(tǒng)內(nèi)核,因而避免引導(dǎo)、加載操作系統(tǒng)內(nèi)核返個比較費時費資源的過程,當新建一個虛擬機時,虛擬機軟件需要加載GuestOS(虛擬機中的操作系統(tǒng)),這個新建過程是分鐘級別的,而Docker由于直接利用宿主機的操作系統(tǒng),則省略了這個復(fù)雜的過程,因此新建一個Docker容器只需要幾秒鐘。

        Docker的安裝

        1.需要Liunx版本為CentOS7.0以上

        2.卸載舊版本(非必須項)

        yum remove docker \                  docker-client \                  docker-client-latest \                  docker-common \                  docker-latest \                  docker-latest-logrotate \                  docker-logrotate \                  docker-engine

        3.安裝Docker所需要依賴

         yum install -y yum-utils \ device-mapper-persistent-data \ lvm2

        4.設(shè)置鏡像倉庫

        yum-config-manager  --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

        5.安裝Docker

        yum -y install docker-ce

        6.設(shè)置阿里云鏡像加速

        阿里云鏡像加速
        sudo mkdir -p /etc/dockersudo tee /etc/docker/daemon.json <<-'EOF'{  "registry-mirrors": ["https://qhyb8ixp.mirror.aliyuncs.com"]}EOFsudo systemctl daemon-reloadsudo systemctl restart docker

        7.開啟Dcoker服務(wù)

        service docker start

        8.測試Docker-HelloWorld程序

        [root@iZ8vbi9mx98t2s78lyxfpuZ ~]# docker run hello-world Unable to find image 'hello-world:latest' locallydocker run hello-worldlatest: Pulling from library/hello-world0e03bdcc26d7: Already existsDigest: sha256:6a65f928fb91fcfbc963f7aa6d57c8eeb426ad9a20c7ee045538ef34847f44f1Status: Downloaded newer image for hello-world:latestHello from Docker!             --> 出現(xiàn)這句話代表Docker安裝沒有問題This message shows that your installation appears to be working correctly.

        9.卸載Docker

        #1. 卸載依賴yum remove docker-ce docker-ce-cli containerd.io#2. 刪除資源 /var/lib/docker 是docker的默認工作路徑!rm -rf /var/lib/docker

        Docker幫助命令

        1. docker version     # 顯示Docker的版本信息2. docker info           # 顯示Docker的系統(tǒng)信息(包含鏡像與容器的數(shù)量)3. docker 命令 --help  # 查看幫助(就是顯示這個命令有什么可選項)

        Docker鏡像命令

        1.docker images:顯示本機上所有安裝鏡像

        [root@MT ~]# docker imagesREPOSITORY          TAG                 IMAGE ID            CREATED             SIZEcentos              latest              470671670cac        4 months ago        237MBhello-world         latest              bf756fb1ae65        4 months ago        13.3kB# 可選項docker images -a # 列出所有的鏡像docker images -q # 只顯示鏡像的id[root@MT ~]# docker images -aq470671670cacbf756fb1ae65

        2.docker search:搜索鏡像

        [root@MT ~]# docker search mysql(鏡像名)NAME                              DESCRIPTION                                     STARSmysql                             MySQL is a widely used, open-source relation   9553             mariadb                           MariaDB is a community-developed fork of MyS   3471 # 可選項docker search mysql -f=STARS=3000 # 列出鏡像星數(shù)大于3000的鏡像

        3.docker pull:下載鏡像

        [root@MT ~]# docker pull mysql      # 下載最新版本的MySQL[root@MT ~]# docker pull mysql:5.7  # 下載指定版本的MySQL

        4.docker rmi:刪除鏡像

        docker rmi -f 鏡像id                      # 刪除指定的鏡像docker rmi -f 鏡像id 鏡像id 鏡像id 鏡像id  # 刪除指定的鏡像docker rmi -f $(docker images -aq)       # 刪除全部的鏡像

        Docker容器命令

        1.docker run [可選參數(shù)] 鏡像名

        [root@MT ~]# docker run 可選參數(shù) 鏡像名# 可選參數(shù)--name=”xxx    # 容器名字-d              # 后臺模式運行-it             # 使用交互模式運行,進入容器查看內(nèi)容-p(小學(xué))         # 指定端口映射 如:-p 8080(宿主機):8080(容器)-P(大寫)         # 隨機端口映射# 測試啟動進入與退出容器[root@MT ~]# docker run -it centos /bin/bash           # /bin/bash 是使用命令行進入[root@6130f0353526 /]# ls                              # 此時已經(jīng)進入Docker的CentOS容器bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var[root@6130f0353526 /]# exitexit[root@MT ~]#

        2.docker ps [可選參數(shù)]:列出運行的容器

        [root@MT ~]# docker ps 可選參數(shù)# 可選參數(shù)-a       # 列出正在運行和歷史運行過的容器-q       # 列出容器ID[root@MT ~]# docker ps -aq6130f0353526895577bc1ae7f9fc9c23267dfaab3fceb1d3

        3.退出容器

        exit          # 容器直接退出Ctrl + P + Q  # 容器不停止退出

        4.刪除容器

        docker rm -f 容器id              # 刪除指定容器(不能刪除正在運行的,如需要rm-rf)docker rm -f $(docker ps -aq)    # 刪除所有容器

        5.啟動和停止容器操作

        docker start 容器id      # 啟動容器docker restart 容器id    # 重啟容器docker stop 容器id       # 停止正在運行的容器docker kill 容器id       # 強制停止

        Docker其它命令

        容器后臺方式運行

        [root@MT ~]# docker run -d centos748d11ff226983ab8281fc6741087e6a3f349ad03f0cadafcd215aed894978dc[root@MT ~]# docker psCONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES # 問題:我們此時已經(jīng)發(fā)現(xiàn)啟動CentOS,但是確查不到正在運行的容器 # 解釋:Docker容器使用后臺運行,就必須要有要一個前臺進程,Docker發(fā)現(xiàn)沒有應(yīng)用,就會自動停止

        查看日志

        docker logs -tf 容器id             # 查看實時日志  docker logs -t --tail 數(shù)量 容器id  # 查看指定數(shù)量的日志

        查看容器中的進程信息

        docker top 容器id

        查看鏡像的元數(shù)據(jù)

        docker inspect 容器id

        進入當前正在運行的容器

        # 通常我們是使用后臺方式運行容器,因為我們可能需要進入容器,修改配置# docker exec -it 容器ID /bin/bash (常用)# docker attach 容器ID# exec方式:就是類似新開一個窗口連接運行的容器# attach方式:就是直接連入當前的容器

        拷貝容器內(nèi)文件到宿主機中

        docker cp 容器id:文件路徑(容器內(nèi)) 目的路徑(宿主機)[root@MT ~]docker cp 1a9a6785c37c:/home/c.java /home/

        Docker安裝Nginx

        # 1. 搜索鏡像 search 建議大家去docker搜索,可以看到幫助文檔docker search nginx# 2. 拉取鏡像 docker pull nginxdocker pull nginx# 3. 運行測試  # -d 后臺運行  # --name 給容器命名  # -p 宿主機端口:容器內(nèi)部端口(我這里使用阿里云的3344端口,前提要在阿里云安全組開放次端口)docker run -d --name nginx -p 3344:80 nginx# 4.查看鏡像docker ps# 5.測試是否成功curl localhost:3344 # 或者在瀏覽器輸入ip:3344

        Docker安裝Tomcat

        # 下載tomcat鏡像docker pull tomcat:9.0# 運行tomcat鏡像docker run -d tomcat -p 3344:80


        文鏈接:https://developer.aliyun.com/article/768663

        版權(quán)申明:內(nèi)容來源網(wǎng)絡(luò),版權(quán)歸原創(chuàng)者所有。除非無法確認,我們都會標明作者及出處,如有侵權(quán)煩請告知,我們會立即刪除并表示歉意。謝謝!





        感謝閱讀



        瀏覽 53
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            精品无码电影 | 好吊视频一区二区三区四区 | 国产精品国产三级国产a | 国产精品福利视频在线观看 | xxxx色色 | 免费看日产一区二区三区 | 日本高潮在线观看 | 欧美日韩午夜 | 国产精品女教师 | 国产九九免费 |