dock
寧夏ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書(shū)未來(lái)市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)的ssl證書(shū)銷(xiāo)售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話(huà)聯(lián)系或者加微信:028-86922220(備注:SSL證書(shū)合作)期待與您的合作!er包含了三個(gè)概念,分別是鏡像,倉(cāng)庫(kù)和容器,其中鏡像是docker運(yùn)行容器的一個(gè)重要的前提,更是docker的核心,倉(cāng)庫(kù)就是存放鏡像的地方。docker鏡像就好像是一個(gè)特殊的文件系統(tǒng),它除了提供容器運(yùn)行的程序,資源,配置和庫(kù)等的文件之外,還包括了一些需要的配置參數(shù),那么docker制作鏡像方法是怎樣的?docker研發(fā)日常制作鏡像操作是怎樣的呢?下面
成都網(wǎng)站建設(shè)就給朋友們?cè)敿?xì)的來(lái)說(shuō)明一下這些問(wèn)題。
docker制作鏡像方法是怎樣的?
docker制作鏡像一般有2種方法:
使用hub倉(cāng)庫(kù)中已有的環(huán)境,安裝自己使用的軟件環(huán)境后完成image創(chuàng)建。
通過(guò)Dockerfile,完成鏡像image的創(chuàng)建。
第一種:使用hub倉(cāng)庫(kù)中已有的環(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用戶(hù)
[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)境就算配置好了,讓我們寫(xiě)一個(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的名稱(chēng)/鏡像名稱(chēng):tag
8、docker commit && push到遠(yuǎn)端倉(cāng)
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è)人倉(cāng),push的image已入庫(kù)
10、如果要打包報(bào)錯(cuò)到本地
docker save -o D:\DockerDesktop\vm-data\DockerDesktop\ebox\sunny_gobox.tar zhangwenhan/gobox:v1.0
第二種:通過(guò)Dockerfile,完成鏡像image的創(chuàng)建。
1、創(chuàng)建鏡像所在文件夾+Dockerfile文件
(1)mkdir ebox && cd ebox
(2)touch Dockerfile
2、在Dockerfile文件中寫(xiě)入指令
FROM ubuntu
RUN apt-get update && apt-get install -y ruby ruby-dev
格式說(shuō)明:
每行命令都是以 INSTRUCTION statement 形式,就是命令+ 清單的模式。命令要大寫(xiě),“#”是注解。
FROM 命令是告訴docker 我們的鏡像什么。
RUN 命令是在鏡像內(nèi)部執(zhí)行。就是說(shuō)他后面的命令應(yīng)該是針對(duì)鏡像可以運(yùn)行的命令。
3、創(chuàng)建鏡像
命令:docker build -t zhangwenhan/ebox:v2 .
docker build 是docker創(chuàng)建鏡像的命令
-t 是標(biāo)識(shí)新建的鏡像屬于 zhangwenhan的
ebox是倉(cāng)庫(kù)的名稱(chēng)
:v2 是tag
"."是用來(lái)指明 我們的使用的Dockerfile文件當(dāng)前目錄的
4、創(chuàng)建完成后,從鏡像創(chuàng)建容器
docker run -t -i zhangwenhan/ebox:v2 /bin/bash
Docker研發(fā)日常制作鏡像操作
一、編寫(xiě)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ī)使用訪(fǎng)問(wèn)的端口 80:Docker內(nèi)啟動(dòng)的端口 xx-project-docker:指定啟動(dòng)之后容器名稱(chēng) xx-project:1.0 鏡像名稱(chēng)(由上面命令獲得或者第一個(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壓縮文件加載到線(xiàn)上鏡像
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)
刪除鏡像
#查詢(xún)所有鏡像
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鏡像難嗎? 需要哪些依賴(lài)?
管理image鏡像難嗎?
docker cli提供了豐富的api接口, 可以非常方便地操作image鏡像。
需要哪些依賴(lài)?
安裝docker的系統(tǒng)(Windows或者Linux)。
一旦容器從鏡像啟動(dòng)后,二者之間就變成了互相依賴(lài)的關(guān)系,并且在鏡像上啟動(dòng)的容器全部停止之前,鏡像是無(wú)法被刪除的。嘗試刪除鏡像而不停止或銷(xiāo)毀使用它的容器,會(huì)導(dǎo)致出錯(cuò)。
docker制作鏡像方法是怎樣的?大家在使用docker制作鏡像的時(shí)候,就可以按照上面的步驟去操作,
什么叫軟文營(yíng)銷(xiāo)?這個(gè)步驟有些復(fù)雜,需要一點(diǎn)點(diǎn)的去理解和操作,
什么叫軟文營(yíng)銷(xiāo)?對(duì)于docker研發(fā)日常制作鏡像操作方法,我們也可以去了解一下,如果大家還有什么不明白的問(wèn)題,都可以咨詢(xún)
創(chuàng)新互聯(lián)網(wǎng)站建設(shè)的專(zhuān)業(yè)工作人員。
當(dāng)前標(biāo)題:docker制作鏡像方法是怎樣的?docker研發(fā)日常制作鏡像操作是怎樣的?
文章路徑:
http://weahome.cn/article/sdpiop.html