• <samp id="mz5ne"><acronym id="mz5ne"></acronym></samp>
      <ol id="mz5ne"></ol>
    1. <samp id="mz5ne"></samp>
      <mark id="mz5ne"></mark>

        <fieldset id="mz5ne"></fieldset>

        免费看又黄又无码的网站_久久久高清国产免费观看_亚洲一区二区三区在线免费观看_免费欧洲美女a视频一级毛片_日本最新免费二区三区

        ×

        docker制作鏡像方法是怎樣的?docker研發(fā)日常制作鏡像操作是怎樣的?

        分類:虛機(jī)資訊 編輯:IT觀察 瀏覽量:169
        2021-04-20 10:48:58
          docker包含了三個(gè)概念,分別是鏡像,倉庫和容器,其中鏡像是docker運(yùn)行容器的一個(gè)重要的前提,更是docker的核心,倉庫就是存放鏡像的地方。docker鏡像就好像是一個(gè)特殊的文件系統(tǒng),它除了提供容器運(yùn)行的程序,資源,配置和庫等的文件之外,還包括了一些需要的配置參數(shù),那么docker制作鏡像方法是怎樣的?docker研發(fā)日常制作鏡像操作是怎樣的呢?下面新網(wǎng)就給朋友們詳細(xì)的來說明一下這些問題。
          docker制作鏡像方法是怎樣的?
          docker制作鏡像一般有2種方法:
          使用hub倉庫中已有的環(huán)境,安裝自己使用的軟件環(huán)境后完成image創(chuàng)建。
          通過Dockerfile,完成鏡像image的創(chuàng)建。
          第一種:使用hub倉庫中已有的環(huán)境,安裝自己使用的軟件環(huán)境后完成image創(chuàng)建。
          制作自己的Docker鏡像環(huán)境,里面包括:
          (1)centos
          (2)golang
          1、docker pull centos(pull最新的centos系統(tǒng))
          2、docker run -it centos /bin/bash(運(yùn)行進(jìn)入容器)
          3、在centos環(huán)境中創(chuàng)建work用戶
          [root@132aaafe685d /]# useradd work
          [root@132aaafe685d /]# su - work
         
        docker制作鏡像
          4、下載go的Linux安裝包,解壓,配置環(huán)境變量
          [work@132aaafe685d ~]$ mkdir goapp && cd goapp && wget https://studygolang.com/dl/golang/go1.14.1.linux-amd64.tar.gz
          [work@132aaafe685d goapp]$ tar zxvf go1.14.1.linux-amd64.tar.gz
          [work@132aaafe685d goapp]$ vim ~/.bash_profile
          [work@132aaafe685d go]$ source ~/.bash_profile
          [work@132aaafe685d go]$ go version
          go version go1.14.1 linux/amd64
          [work@132aaafe685d go]$ echo $GOPATH
          /home/work/goapp
          [work@132aaafe685d go]$ echo $HOME
          此時(shí),go的最基礎(chǔ)環(huán)境就算配置好了,讓我們寫一個(gè)go程序,運(yùn)行一下吧。
          5、go 實(shí)現(xiàn)"Hello World!"
          [work@132aaafe685d ~]$ vim /home/work/goapp/src/main.go
          6、go run main.go
          [work@132aaafe685d ~]$ go run /home/work/goapp/src/main.go
          Hello World!
          7、docker commit -m "xxx" -a "authorName" containerID hub的名稱/鏡像名稱:tag
          8、docker commit && push到遠(yuǎn)端倉
          C:\Users\Administrator>docker commit -m "centos and go env" -a "wenhan" 132aaafe685d zhangwenhan/gobox:v1
          sha256:2f74c2d19210cc38da7267e5e8922dbafc1f33d9bf26ff01b27f335d9e6e8dec
          C:\Users\Administrator>docker login
          Authenticating with existing credentials...
          Login Succeeded
          9、查看https://hub.docker.com/里的個(gè)人倉,push的image已入庫
          10、如果要打包報(bào)錯(cuò)到本地
          docker save -o D:\DockerDesktop\vm-data\DockerDesktop\ebox\sunny_gobox.tar zhangwenhan/gobox:v1.0
          第二種:通過Dockerfile,完成鏡像image的創(chuàng)建。
          1、創(chuàng)建鏡像所在文件夾+Dockerfile文件
          (1)mkdir ebox && cd ebox
          (2)touch Dockerfile
          2、在Dockerfile文件中寫入指令
          FROM ubuntu
          RUN apt-get update && apt-get install -y ruby ruby-dev
          格式說明:
          每行命令都是以 INSTRUCTION statement 形式,就是命令+ 清單的模式。命令要大寫,“#”是注解。
          FROM 命令是告訴docker 我們的鏡像什么。
          RUN 命令是在鏡像內(nèi)部執(zhí)行。就是說他后面的命令應(yīng)該是針對鏡像可以運(yùn)行的命令。
          3、創(chuàng)建鏡像
          命令:docker build -t zhangwenhan/ebox:v2 .
          docker build 是docker創(chuàng)建鏡像的命令
          -t 是標(biāo)識(shí)新建的鏡像屬于 zhangwenhan的
          ebox是倉庫的名稱
          :v2 是tag
          "."是用來指明 我們的使用的Dockerfile文件當(dāng)前目錄的
          4、創(chuàng)建完成后,從鏡像創(chuàng)建容器
          docker run -t -i zhangwenhan/ebox:v2 /bin/bash
          Docker研發(fā)日常制作鏡像操作
          一、編寫NginxDemo Dockerfile
          # Version 0.1
          # 基礎(chǔ)鏡像
          FROM nginx
          # 維護(hù)者信息
          MAINTAINER Mr.Hao@51hsw.com
          # 將容器的工作目錄設(shè)置為/app(當(dāng)前目錄,如果/app不存在,WORKDIR會(huì)創(chuàng)建/app文件夾)
          WORKDIR /app
          # 鏡像操作命令
          RUN xxxx
          # 容器啟動(dòng)命令
          #指定nginx配置項(xiàng)目,--from=builder 指的是從上一次 build 的結(jié)果中提取了編譯結(jié)果(FROM node:alpine as builder),即是把剛剛打包生成的dist放進(jìn)nginx中
          COPY --from=builder app/nginx.conf /etc/nginx/nginx.conf
          #暴露容器80端口
          EXPOSE 80
          二、編譯、安裝日常操作
          編譯
          # xx項(xiàng)目 1.0 tag(標(biāo)簽或版本)
          docker build -t xx:1.0
          查看
          #待上面命令執(zhí)行完成
          docker images |grep xx
          #查看全部鏡像
          docker images
          運(yùn)行
          #使用xx-project進(jìn)行運(yùn)行 8080:本機(jī)使用訪問的端口 80:Docker內(nèi)啟動(dòng)的端口 xx-project-docker:指定啟動(dòng)之后容器名稱 xx-project:1.0 鏡像名稱(由上面命令獲得或者第一個(gè)命令 -t 的參數(shù)值)
          docker run -p 8080:80 -d --name xx-project-docker xx-project:1.0
          打包為tar
          docker save -o xx-project.tar xx-project:1.0
          加載tar包到其它docker環(huán)境
          #執(zhí)行l(wèi)oad,將.tar壓縮文件加載到線上鏡像
          docker load --input /home/root/xx-project.tar
          推送docker鏡像到harbor
          #初始
          docker tag xx-project:1.0 core.harbor.domain:5000/xx-project/xx-project:1.0
          #推送
          docker push core.harbor.domain:5000/xx-project/xx-project:1.0
         
        docker制作鏡像
          三、停止、刪除相關(guān)操作
          查看所有運(yùn)行的容器
          #列出所有的容器 ID
          docker ps -aq
          #列表進(jìn)程
          docker ps -a
          殺掉某個(gè)容器
          #kill 指定容器
          docker kill 容器ID 容器ID 容器ID ...
          #stop 指定容器
          docker stop 容器ID 容器ID 容器ID ...
          #停止所有容器
          docker stop $(docker ps -aq)
          刪除容器
          #刪除指定容器
          docker rm 容器ID
          #強(qiáng)刪除
          docker rm -f 容器ID
          #刪除所有容器
          docker rm $(docker ps -aq)
          #強(qiáng)刪除所有容器
          docker rm -f $(docker ps -aq)
          刪除鏡像
          #查詢所有鏡像
          docker images
          #刪除指定鏡像
          docker rmi 鏡像ID
          #強(qiáng)刪除
          docker rmi -f 鏡像ID
          #刪除所有鏡像
          docker rmi $(docker images -q)
          #強(qiáng)刪除所有鏡像
          docker rmi -f $(docker images -q)
          其它清空快捷操作
          # 清空所有不使用的鏡像
          docker image prune --force --all
          # 或
          docker image prune -f -a
          # 清空所有停止的容器
          docker container prune -f
          awk刪除操作
          #停止容器
          docker stop $(docker ps -a | grep "Exited" | awk '{print $1 }')
          #刪除容器
          docker rm $(docker ps -a | grep "Exited" | awk '{print $1 }')
          #刪除鏡像
          docker rmi $(docker images | grep "none" | awk '{print $3}')
          管理image鏡像難嗎? 需要哪些依賴?
          管理image鏡像難嗎?
          docker cli提供了豐富的api接口, 可以非常方便地操作image鏡像。
          需要哪些依賴?
          安裝docker的系統(tǒng)(Windows或者Linux)。
          一旦容器從鏡像啟動(dòng)后,二者之間就變成了互相依賴的關(guān)系,并且在鏡像上啟動(dòng)的容器全部停止之前,鏡像是無法被刪除的。嘗試刪除鏡像而不停止或銷毀使用它的容器,會(huì)導(dǎo)致出錯(cuò)。
          docker制作鏡像方法是怎樣的?大家在使用docker制作鏡像的時(shí)候,就可以按照上面的步驟去操作,這個(gè)步驟有些復(fù)雜,需要一點(diǎn)點(diǎn)的去理解和操作,對于docker研發(fā)日常制作鏡像操作方法,我們也可以去了解一下,如果大家還有什么不明白的問題,都可以咨詢新網(wǎng)的專業(yè)工作人員。


        聲明:免責(zé)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),也不承認(rèn)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)本社區(qū)中有涉嫌抄襲的內(nèi)容,請發(fā)

        送郵件至:operations@xinnet.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。本站原創(chuàng)內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)

        需注明出處:新網(wǎng)idc知識(shí)百科

        免費(fèi)咨詢獲取折扣

        Loading
        国产精品视频白浆免费视频_久久久高清国产免费观看_亚洲一区二区三区在线免费观看_免费欧洲美女a视频一级毛片
      1. <samp id="mz5ne"><acronym id="mz5ne"></acronym></samp>
          <ol id="mz5ne"></ol>
        1. <samp id="mz5ne"></samp>
          <mark id="mz5ne"></mark>

            <fieldset id="mz5ne"></fieldset>
            沂南县| 玛多县| 房山区| 龙里县| 徐闻县| 吴旗县| 遂平县| 乌拉特前旗| 临漳县| 舒兰市| 峡江县| 盐山县| 通州市| 广灵县| 调兵山市| 松潘县| 彭州市| 黄龙县| 武隆县| 南雄市| 胶州市| 伊通| 六安市| 内江市| 彰武县| 江都市| 宜川县| 大渡口区| 三江| 宝鸡市| 莱芜市| 福安市| 保德县| 威信县| 许昌县| 三亚市| 高安市| 祁东县| 南京市| 凤翔县| 山西省|