亚洲综合在线一区二区三区-日韩超碰人人爽人人做人人添-麻豆国产精品久久人妻-无码人妻丰满熟妇啪啪-天堂精品一区二区三区-99久久综合狠狠综合久久aⅴ

×

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

分類:虛機資訊 編輯:IT觀察 瀏覽量:169
2021-04-20 10:48:58
  docker包含了三個概念,分別是鏡像,倉庫和容器,其中鏡像是docker運行容器的一個重要的前提,更是docker的核心,倉庫就是存放鏡像的地方。docker鏡像就好像是一個特殊的文件系統,它除了提供容器運行的程序,資源,配置和庫等的文件之外,還包括了一些需要的配置參數,那么docker制作鏡像方法是怎樣的?docker研發日常制作鏡像操作是怎樣的呢?下面新網就給朋友們詳細的來說明一下這些問題。
  docker制作鏡像方法是怎樣的?
  docker制作鏡像一般有2種方法:
  使用hub倉庫中已有的環境,安裝自己使用的軟件環境后完成image創建。
  通過Dockerfile,完成鏡像image的創建。
  第一種:使用hub倉庫中已有的環境,安裝自己使用的軟件環境后完成image創建。
  制作自己的Docker鏡像環境,里面包括:
  (1)centos
  (2)golang
  1、docker pull centos(pull最新的centos系統)
  2、docker run -it centos /bin/bash(運行進入容器)
  3、在centos環境中創建work用戶
  [root@132aaafe685d /]# useradd work
  [root@132aaafe685d /]# su - work
 
docker制作鏡像
  4、下載go的Linux安裝包,解壓,配置環境變量
  [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
  此時,go的最基礎環境就算配置好了,讓我們寫一個go程序,運行一下吧。
  5、go 實現"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到遠端倉
  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/里的個人倉,push的image已入庫
  10、如果要打包報錯到本地
  docker save -o D:\DockerDesktop\vm-data\DockerDesktop\ebox\sunny_gobox.tar zhangwenhan/gobox:v1.0
  第二種:通過Dockerfile,完成鏡像image的創建。
  1、創建鏡像所在文件夾+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 命令是在鏡像內部執行。就是說他后面的命令應該是針對鏡像可以運行的命令。
  3、創建鏡像
  命令:docker build -t zhangwenhan/ebox:v2 .
  docker build 是docker創建鏡像的命令
  -t 是標識新建的鏡像屬于 zhangwenhan的
  ebox是倉庫的名稱
  :v2 是tag
  "."是用來指明 我們的使用的Dockerfile文件當前目錄的
  4、創建完成后,從鏡像創建容器
  docker run -t -i zhangwenhan/ebox:v2 /bin/bash
  Docker研發日常制作鏡像操作
  一、編寫NginxDemo Dockerfile
  # Version 0.1
  # 基礎鏡像
  FROM nginx
  # 維護者信息
  MAINTAINER Mr.Hao@51hsw.com
  # 將容器的工作目錄設置為/app(當前目錄,如果/app不存在,WORKDIR會創建/app文件夾)
  WORKDIR /app
  # 鏡像操作命令
  RUN xxxx
  # 容器啟動命令
  #指定nginx配置項目,--from=builder 指的是從上一次 build 的結果中提取了編譯結果(FROM node:alpine as builder),即是把剛剛打包生成的dist放進nginx中
  COPY --from=builder app/nginx.conf /etc/nginx/nginx.conf
  #暴露容器80端口
  EXPOSE 80
  二、編譯、安裝日常操作
  編譯
  # xx項目 1.0 tag(標簽或版本)
  docker build -t xx:1.0
  查看
  #待上面命令執行完成
  docker images |grep xx
  #查看全部鏡像
  docker images
  運行
  #使用xx-project進行運行 8080:本機使用訪問的端口 80:Docker內啟動的端口 xx-project-docker:指定啟動之后容器名稱 xx-project:1.0 鏡像名稱(由上面命令獲得或者第一個命令 -t 的參數值)
  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環境
  #執行load,將.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制作鏡像
  三、停止、刪除相關操作
  查看所有運行的容器
  #列出所有的容器 ID
  docker ps -aq
  #列表進程
  docker ps -a
  殺掉某個容器
  #kill 指定容器
  docker kill 容器ID 容器ID 容器ID ...
  #stop 指定容器
  docker stop 容器ID 容器ID 容器ID ...
  #停止所有容器
  docker stop $(docker ps -aq)
  刪除容器
  #刪除指定容器
  docker rm 容器ID
  #強刪除
  docker rm -f 容器ID
  #刪除所有容器
  docker rm $(docker ps -aq)
  #強刪除所有容器
  docker rm -f $(docker ps -aq)
  刪除鏡像
  #查詢所有鏡像
  docker images
  #刪除指定鏡像
  docker rmi 鏡像ID
  #強刪除
  docker rmi -f 鏡像ID
  #刪除所有鏡像
  docker rmi $(docker images -q)
  #強刪除所有鏡像
  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的系統(Windows或者Linux)。
  一旦容器從鏡像啟動后,二者之間就變成了互相依賴的關系,并且在鏡像上啟動的容器全部停止之前,鏡像是無法被刪除的。嘗試刪除鏡像而不停止或銷毀使用它的容器,會導致出錯。
  docker制作鏡像方法是怎樣的?大家在使用docker制作鏡像的時候,就可以按照上面的步驟去操作,這個步驟有些復雜,需要一點點的去理解和操作,對于docker研發日常制作鏡像操作方法,我們也可以去了解一下,如果大家還有什么不明白的問題,都可以咨詢新網的專業工作人員。


聲明:免責聲明:本文內容由互聯網用戶自發貢獻自行上傳,本網站不擁有所有權,也不承認相關法律責任。如果您發現本社區中有涉嫌抄襲的內容,請發

送郵件至:operations@xinnet.com進行舉報,并提供相關證據,一經查實,本站將立刻刪除涉嫌侵權內容。本站原創內容未經允許不得轉載,或轉載時

需注明出處:新網idc知識百科

免費咨詢獲取折扣

Loading
主站蜘蛛池模板: 中文人妻无码一区二区三区| 挺进朋友人妻雪白的身体韩国电影| 免费夜色污私人影院在线观看 | 精产国品一区二区三产区| 免费无码成人av在线播| 久久av色欲av久久蜜桃网| 国产又色又爽又黄刺激视频| 国产吃奶在线观看| 女人18毛片a级毛片免费视频| 国产精品自产拍高潮在线观看| 男ji大巴进入女人的直播| 午夜寂寞少妇aaa片毛片| 婷婷色中文字幕综合在线| 久久精品卫校国产小美女| 对白脏话肉麻粗话av| 亚洲中文字幕久久无码精品| 亚洲成a∨人片在线观看无码| 久久久日韩精品一区二区| 久久夜色精品国产噜噜| 无码人妻精品一区二区三区在线| 国产精品国产三级国产专播| 大香伊蕉在人线国产av| 麻豆蜜桃av蜜臀av色欲av| 大地资源在线观看官网第三页| 亚洲亚洲人成无码网www| 无码中文国产不卡视频| 欧美成人免费视频一区二区| 国产永久免费观看视频| 波多野结衣爽到高潮大喷| 久久99国产精品久久| 又大又长粗又爽又黄少妇毛片| 人妻夜夜爽天天爽| 成人无码www免费视频| 亚洲另类伦春色综合| 青青青国产成人久久111网站| 好吊妞无缓冲视频观看| 久久国产免费直播| 亚洲人成人一区二区三区| 人妻一本久道久久综合久久鬼色| 波多野结衣av一区二区全免费观看| 亚洲精品久久久www|