<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Docker 專題總結(jié)

      Docker 專題總結(jié)

      Docker 的基本命令

      • 啟動 Docker

        $ systemctl start docker
        
      • 停止Docker

        $ systemctl stop docker
        
      • 重啟Docker

        $ systemctl restart docker
        
      • 開啟自啟動Docker

        $ systemctl enable docker
        
      • 查看Docker的概要信息

        $ docker info
        
      • 查看Docker的幫助文檔

        $ docker --help
        
      • 查看Docker的版本信息

        $ docker version
        

      Docker 鏡像的常用命令

      • docker images 列出本機所有鏡像

        $ docker images
        

        列出本機所有鏡像 :

        標簽 說明
        REPOSITORY 鏡像的倉庫源
        TAG 鏡像的標簽(版本)同一個倉庫有多個TAG的鏡像,多個版本;我們用REPOSITORY:TAG來定義不同的鏡像;
        IMAGE ID 鏡像ID,鏡像的唯一標識
        CREATE 鏡像創(chuàng)建時間
        SIZE 鏡像大小

        列出鏡像可選參數(shù)

        OPTIONS 可選參數(shù):
        -a 顯示所有鏡像(包括中間層)
        -q 只顯示鏡像ID
        -qa 可以組合
        --digests 顯示鏡像的摘要信息
        --no-trunc 顯示完整的鏡像信息
      • docker search 搜索鏡像

        $ docker search 
        

        https://hub.docker.com/ 這里的搜索效果一樣;

        OPTIONS可選參數(shù):

        可選參數(shù) 說明
        --no-trunc 顯示完整的鏡像描述
        -s 列出收藏數(shù)不小于指定值的鏡像
        --automated 只列出Docker Hub自動構(gòu)建類型的鏡像
      • docker pull 下載鏡像

        docker pull 鏡像名稱:[TAG]
        

        注意:不加TAG,默認下載最新版本latest

      • 刪除單個鏡像

        # 1,刪除單個:
        docker rmi 鏡像名稱:[TAG]
        

        如果不寫TAG,默認刪除最新版本latest

        有鏡像生成的容器再運行時候,會報錯,刪除失敗;

        我們需要加 -f 強制刪除

      • docker rmi -f 鏡像名稱1:[TAG] 鏡像名稱2:[TAG]

        $ docker rmi -f 鏡像名稱1:[TAG] 鏡像名稱2:[TAG]
        
      • 刪除全部

        $ docker rmi -f $(docker images -qa)
        

      Docker容器常用命令

      • 查看正在運行的容器

        $ docker ps [OPTIONS]
        
        $ docker ps 查看正在運行的容器
        
        $ docker ps -a 查看所有容器
        
        $ docker ps -n 2  顯示最近創(chuàng)建的2個容器
        
        $ docker ps -f status=exited 查看停止的容器
        

        OPTIONS說明:

        -a :顯示所有的容器,包括未運行的。

        -f :根據(jù)條件過濾顯示的內(nèi)容。

        --format :指定返回值的模板文件。

        -l :顯示最近創(chuàng)建的容器。

        -n :列出最近創(chuàng)建的n個容器。

        --no-trunc :不截斷輸出。

        -q :靜默模式,只顯示容器編號。

        -s :顯示總的文件大小。

      • 容器停止退出

        $ exit  	#容器停止退出
        
        $ ctrl + P + Q   #容器不停止退出
        
      • 進入容器

        $ docker attach 容器ID or 容器名 
        
      • 啟動容器

        $ docker start 容器ID or 容器名
        
      • 重啟容器

        $ docker restart 容器ID or 容器名
        
      • 停止容器

        $ docker stop 容器ID or 容器名
        
        #暴力刪除,直接殺掉進程 (不推薦)
        docker kill 容器ID or 容器名
        
      • 刪除容器

        $ docker rm 容器ID  
        
        #如果刪除正在運行的容器,會報錯,我們假如需要刪除的話,需要強制刪除;
        $ docker rm -f 容器ID
        
        #刪除多個容器 
        $ docker rm -f 容器ID1  容器ID2 中間空格隔開
        
        #刪除所有容器
        docker rm -f $(docker ps -qa)
        
      • docker宿主機和容器間文件拷貝

        #宿主機文件 copy to 容器內(nèi)
        docker cp 需要拷貝的文件或者目錄   容器名稱:容器目錄
        # 比如 docker cp /home/data/001.jpg 6498bcb8d66f /home/data/001.jpg
        
        #容器內(nèi) copy to 宿主機
        docker cp 容器名稱:容器目錄    宿主機目錄
        
      • docker 查看容器日志

        $ docker logs [OPTIONS] CONTAINER
        #也可以去docker日志文件目錄查找,docker日志文件目錄 /var/lib/docker/containers/ 
        

        Options:

        --details 顯示更多的信息

        -f, --follow 跟蹤實時日志

          --since string  顯示自某個timestamp之后的日志,或相對時間,如42m(即42分鐘)
        
          --tail string  從日志末尾顯示多少行日志, 默認是all
        

        -t, --timestamps 顯示時間戳

          --until string  顯示自某個timestamp之前的日志,或相對時間,如42m(即42分鐘)
        
      • docker 查看容器進程

        $ docker top 容器ID
        
      • docker 進入容器執(zhí)行命令,直接操作容器,執(zhí)行完 回到 宿主主機終端;

        我們一般用于 啟動容器里的應(yīng)用 比如 tomcat nginx redis elasticsearch等等

        $ docker exec -it 容器名稱 或者 容器ID /bin/bash
        
      • 提交運行時容器成為鏡像

        docker commit -a='作者' -m='備注' 運行時容器ID 新鏡像名稱
        
      • 容器端口映射

        # 端口映射;
        $ docker run -it -p 8888:8080 鏡像ID
        $ docker run -it -P 鏡像ID
        
      • 創(chuàng)建并啟動容器

        $ docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
        # 啟動普通容器
        $ docker run --name 別名 鏡像ID
        # 啟動交互式容器 運行一個容器 取別名 交互模式運行 以及分配一個偽終端
        $ dokcer run -it --name 別名 鏡像ID 
        # 守護式方式創(chuàng)建并啟動容器,執(zhí)行完命令后,終端依然再宿主機上;
        $ docker run -di --name 別名 鏡像ID
        #啟動容器,并執(zhí)行/bin/bash命令;
        $ docker run -it --name 別名 鏡像ID  /bin/bash命令
        

        --name="容器新名字":為容器指定一個名稱;

        -i:以交互模式運行容器,通常與-t或者-d同時使用;

        -t:為容器重新分配一個偽輸入終端,通常與-i同時使用;

        -d: 后臺運行容器,并返回容器ID;

        -P: 隨機端口映射,容器內(nèi)部端口隨機映射到主機的端口

        -p: 指定端口映射,格式為:主機(宿主)端口:容器端口

      Docker目錄掛載

      • 簡介:容器目錄掛載,我們可以在創(chuàng)建容器的時候,將宿主機的目錄與容器內(nèi)的目錄進行映射,這樣我們就可以實現(xiàn)宿主機和容器目錄的雙向自動同步;

      • 作用:前面的 cp 命令來實現(xiàn)數(shù)據(jù)傳遞,這種方式比較麻煩;我們通過容器目錄掛載,能夠輕松實現(xiàn)代碼上傳,配置修改,日志同步等需求;

      • 語法:

        #單個目錄掛載
        $ docker run -it -v  /宿主機目錄:/容器目錄 鏡像名
        
        #多個目錄掛載
        $ docker run -it -v /宿主機目錄:/容器目錄 -v /宿主機目錄2:/容器目錄2  鏡像名
        
        #掛載目錄只讀:
        $ docker run -it -v  /宿主機目錄:/容器目錄:ro 鏡像名
        

      注意:

      如果同步的是多級目錄,可能會出現(xiàn)權(quán)限不足的提示;

      這是因為Centos7中的安全模塊selinux把權(quán)限禁掉了,我們需要在啟動命令后添加 --privileged=true 來解決掛載的目錄沒有權(quán)限的問題;

      Docker tomcat端口映射的坑

      問題描述:啟動容器后,外網(wǎng)無法映射訪問 Tomcat

      排查思路:

      1. 查看firewall-cmd --state,添加策略對外打開指定的端口

        #查看
        firewall-cmd --list-ports
        firewall-cmd --list-services
        
        #添加策略
        firewall-cmd --add-port=5000/tcp --permanent
        firewall-cmd --remove-port=5000/tcp --permanent
        firewall-cmd --reload
        
      2. 查看 sysctl net.ipv4.ip_forward 是否轉(zhuǎn)發(fā) 0-未轉(zhuǎn)發(fā) 1-轉(zhuǎn)發(fā)

      3. 查看容器 tomcat的 webapp目錄下是否存在文件,講webapp.dist目錄內(nèi)文件 拷貝至wepapp

      Docker 配置 Tomcat

      • 配置思路:先進行鏡像的拉取安裝,然后指定端口啟動并進入容器。在本地建立Tomcat 同級目錄,并將容器Tomcat目錄下內(nèi)容拷貝至宿主機,再進行宿主機與容器之間的掛載,這樣容器與宿主機間的數(shù)據(jù)關(guān)系就同步了。

      • 配置步驟:

        1. 安裝鏡像并運行容器

          $ docker pull tomcat:8.5.31
          $ docker run -di -p 8888:8080 鏡像id
          
        2. 宿主機里home目錄下新建tomcat目錄,復制容器里conf,webapps到宿主機

          $ docker cp  容器id:/usr/local/tomcat/conf  /home/tomcat/
          $ docker cp  容器id::/usr/local/tomcat/webapps  /home/tomcat/
          
        3. 把容器里的tomcat里的webapp,logs,conf掛載到宿主機tomcat目錄下,方便上傳代碼,同步持久化日志,以及方便配置tomcat;關(guān)掉容器,啟動容器;

          $ docker run -d --name 容器名稱 -p 80:8080 -v /home/tomcat/conf/:/usr/local/tomcat/conf/  
                                                   -v /home/tomcat/webapps/:/usr/local/tomcat/webapps/ 
                                                   -v /home/tomcat/logs/:/usr/local/tomcat/logs/ 鏡像名稱
          
        4. 配置tomcat server.xml 以及 同步上傳war包

          <Context path="" docBase="/usr/local/tomcat/webapps/WebTest" debug="0" reloadable="true" /> 
          

      Docker 配置 MySQL

      • 簡介:docker安裝MySQL 和 安裝Tomcat 差不太多,這邊主要介紹下配置思路

      • 安裝步驟:

        1. 拉取需要的MySQL鏡像

          $ docker pull mysql:5.7
          
        2. 創(chuàng)建宿主機掛載目錄,存儲MySQL配置文件、數(shù)據(jù)文件及相關(guān)日志信息

          $ docker cp  容器id:/etc/mysql/conf.d  /home/mysql/
          $ docker cp  容器id:/var/log  /home/mysql/
          $ docker cp  容器id:/var/lib/mysql  /home/mysql/ 
          
        3. 創(chuàng)建并運行容器,端口指定,目錄掛載

          $ docker run -p 3306:3306  -d  -v /etc/mysql/conf.d/:/home/mysql/conf/ 
          -v /var/log:/home/mysql/log/   -v /var/lib/mysql/:/home/mysql/mysql/ 
          -e MYSQL_ROOT_PASSWORD=123456  鏡像ID
          
        4. 用sqlyog連接docker里的數(shù)據(jù)庫,導入sql腳本

      • 注意事項:

        • 運行的項目里的數(shù)據(jù)庫連接地址,要寫docker里的mysql容器所在的虛擬IP地址;容器間通信IP;

          # 查看 inspect中的  "IPAddress": "172.17.0.2" 信息 項目中l(wèi)ocahost 替換為容器IPAddress 地址
          $ docker inspect 容器ID 
          

      Docker遷移與備份

      • 大公司開發(fā)過程中,經(jīng)常自定義鏡像,然后commit提交成鏡像到本地倉庫,但是我們發(fā)布到客戶服務(wù)器的時候,可以用前面講得發(fā)布到hub官方,或者阿里云,但是有些機密性的項目,是禁止公網(wǎng)存儲的,所以我們只能通過docker鏡像備份和遷移實現(xiàn)。

      • 實現(xiàn)方式:

        #備份鏡像
        $ docker save -o 備份鏡像的名稱  源鏡像名稱:tag版本
        比如: $ docker save -o mytomcat7.1.tar java1234/tomcat7:7.1
        
        #將打好的tar 進行sftp或網(wǎng)絡(luò)傳輸 可實現(xiàn)自定義鏡像的恢復 
        $ docker load -i 鏡像文件
        比如:$ docker load -i mytomcat7.1.tar
        

      DockerFile

      • 簡介:

        Dockerfile是由一系列命令和參數(shù)構(gòu)成的腳本,這些命令應(yīng)用于操作系統(tǒng)(centos或者Ubuntu)基礎(chǔ)鏡像并最終創(chuàng)建的一個新鏡像;通過用手工的方式,修改配置文件,或者添加,刪除文件目錄的方式,來構(gòu)建一種新鏡像;這種手工方式麻煩,容易出錯,而且不能復用;Dockerfile使用腳本方式來構(gòu)建自動化,可復用的,高效率的創(chuàng)建鏡像方式,是企業(yè)級開發(fā)的首選方式;

        在軟件系統(tǒng)開發(fā)生命周期中,采用Dockerfile來構(gòu)建鏡像;

        1、對于開發(fā)人員:可以為開發(fā)團隊提供一個完全一致的開發(fā)環(huán)境;

        2、對于測試人員:可以直接拿開發(fā)時所構(gòu)建的鏡像或者通過Dockerfile文件構(gòu)建一個新的鏡像開始工作;

        3、對于運維人員:在部署時,可以實現(xiàn)應(yīng)用的無縫移植。

      • DockerFile常用指令

        #定義了使用哪個基礎(chǔ)鏡像啟動構(gòu)建流程
        FROM image_name:tag
        
        #聲明鏡像維護者信息
        MAINTAINER user_info 
        
        #設(shè)置環(huán)境變量(可以寫多條)
        ENV key value
        
        #構(gòu)建容器時需要運行的命令(可以寫多條)
        RUN command
        
        #設(shè)置終端默認登錄進來的工作目錄
        WORKDIR path_dir
        
        #當前容器對外暴露出的端口
        EXPOSE port
        
        #將宿主機的文件復制到容器內(nèi),如果是一個壓縮文件,將會在復制后自動解壓
        ADD source_dir/file dest_dir/file
        
        #和ADD相似,但是如果有壓縮文件是不能解壓
        COPY source_dir/file dest_dir/file
        
        #創(chuàng)建一個可以從本地主機或其他容器掛載的掛載點,一般用來存放數(shù)據(jù)庫和需要保持的數(shù)據(jù)等
        VOLUME
        
        #指定容器啟動時要運行的命令,假如有多個CMD,最后一個生效
        CMD
        
        #指定容器啟動時要運行的命令
        ENTRYPOINT
        
        #當構(gòu)建一個被繼承的Dockerfile時運行的命令,父鏡像在被子鏡像繼承后父鏡像的onbuild被觸發(fā)??梢园袿NBUID理解為一個觸發(fā)器。
        ONBUILD
        
      • DockerFile構(gòu)建自定義CentOS

        #第一步:編寫DockerFile
        
        FROM centos
        MAINTAINER zhangtao<zhangtao2021@126.com>
        
        LABEL name="zhangtao CentOS Image" \
        
            build-date="20210316"
        
        ENV WORKPATH /home/
        WORKDIR $WORKPATH
        
        
        RUN yum -y install net-tools
        RUN yum -y install vim
        
         
        
        EXPOSE 80
        CMD /bin/bash
        
        #2.通過DockerFile構(gòu)建鏡像
        構(gòu)建 docker build -f myCentosDockerFile -t zhangtao/mycentos:1.1 .
        
        #3:測試運行鏡像
        運行 docker run -it 鏡像ID
        
        #4.查看鏡像歷史
        查看鏡像歷史  docker history 鏡像ID
        

      DockerFile通過VOLUME實現(xiàn)容器卷

      • 簡介:前面用啟動命令 -v 宿主機目錄:容器卷目錄 來實現(xiàn)容器卷目錄掛載。但是由于定義Dockerfile的時候,并不能保證在所有的宿主機上都有這樣的特定目錄,所以在Dockerfile定義中,只能指定容器卷目錄;

      • 語法:

        #編寫DockerFile
        
        FROM centos
        
        VOLUME ["/home/v1","/home/v2"]
        
        CMD /bin/bash
        
        #構(gòu)建
        $ docker build -f myVolumeDockerFile -t zhangtao/myTest:1.1 .
        
        #運行 
        $ docker run -it  鏡像ID
        
        

        容器運行后,進入home目錄,找到v1,v2兩個容器卷目錄;然后我們通過 docker inspect 容器ID 來查看下默認生成的容器卷對應(yīng)的宿主機目錄,通過新建文件和 修改,實現(xiàn)容器卷同步

      posted @ 2021-03-16 21:49  DOONDO  閱讀(153)  評論(1)    收藏  舉報
      主站蜘蛛池模板: 国产乱码1卡二卡3卡四卡5| 亚洲中文字幕av不卡无码| 精品一卡2卡三卡4卡乱码精品视频| 日韩av在线一卡二卡三卡| 亚洲成在人网站av天堂| 国产精品成人久久电影| 人妻另类 专区 欧美 制服| 伊人久久大香线蕉成人| 土默特左旗| 99久久国产综合精品色| av中文字幕在线二区| 日本久久高清一区二区三区毛片| 国产内射xxxxx在线| 视频一区视频二区制服丝袜 | 国产乱子伦视频在线播放| 日韩亚av无码一区二区三区| 妖精视频yjsp毛片永久| 国产欧美日韩精品丝袜高跟鞋| 久久波多野结衣av| 色综合久久网| 国产办公室秘书无码精品99| 日韩不卡在线观看视频不卡| 亚洲中文字幕乱码电影| 最近中文字幕日韩有码| 久久精品国产亚洲av久| 香港日本三级亚洲三级| 久久香蕉国产线看观看怡红院妓院| 国产在线一区二区在线视频| 嫖妓丰满肥熟妇在线精品| 欧美精品久久天天躁| 色爱综合另类图片av| 2020无码专区人妻系列日韩| 国产中年熟女高潮大集合| 99福利一区二区视频| 阿克陶县| 国产一区精品综亚洲av| 久久精品国产亚洲AV瑜伽| 黄色A级国产免费大片视频| 任我爽精品视频在线播放| 国产成人影院一区二区三区| 国产福利深夜在线播放|