国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

idea中打包docker鏡像

這篇具有很好參考價(jià)值的文章主要介紹了idea中打包docker鏡像。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

idea中打包docker鏡像

說(shuō)明

? 構(gòu)建和推送鏡像都是需要docker環(huán)境的,這個(gè)大家可以使用同一個(gè)遠(yuǎn)程的環(huán)境,這里說(shuō)的就是idea使用服務(wù)器上的docker進(jìn)行鏡像的構(gòu)建和發(fā)布,

? 默認(rèn)高版本的idea中默認(rèn)集成了docker插件,這個(gè)插件的官方文檔:https://www.jetbrains.com/help/idea/docker.html

? 提供多種方式連接docker,ssh方式和tcp方式,ssh方式更簡(jiǎn)單一點(diǎn)。似乎功能上沒(méi)什么不同。

連接上docker之后,就可以在本地查看服務(wù)器上的鏡像、容器、網(wǎng)絡(luò),本地執(zhí)行部署鏡像的命令(鏡像在服務(wù)器),發(fā)布鏡像等。

ssh方式連接docker

這個(gè)沒(méi)啥好說(shuō)的,配置界面填上docker服務(wù)器地址,用戶(hù)名和密碼即可。連接成功后操作界面如下

tcp方式連接docker

說(shuō)明

docker架構(gòu)中,Docker daemon( Docker守護(hù)進(jìn)程)負(fù)責(zé)和客戶(hù)端通訊,然后和Container交互。這里修改的是Docker daemon的配置。

需要說(shuō)明的是不添加證書(shū),單獨(dú)開(kāi)啟tcp訪(fǎng)問(wèn)不安全,這意味著所有人都可以操作你的dcoker,所以這個(gè)主要介紹的是添加證書(shū)的方式。

部分內(nèi)容來(lái)自:https://cloud.tencent.com/developer/article/2095087 、https://cloud.tencent.com/developer/article/2022355

以下操作主要是生成了CA證書(shū),服務(wù)端證書(shū),客戶(hù)端證書(shū)。

ca和服務(wù)端相關(guān)證書(shū)

1、生成私鑰

# 1、創(chuàng)建ca存放的目錄
mkdir -p /app/docker/ca/
cd /app/docker/ca/

# 2、在當(dāng)前目錄下生成證書(shū)私鑰文件ca-key.pem,私鑰長(zhǎng)度是4096,需要輸入密碼
openssl genrsa -aes256 -out ca-key.pem 4096

**2.**使用CA私鑰生成自簽名CA證書(shū)ca.pem。生成證書(shū)時(shí),通過(guò)-days 365設(shè)置證書(shū)的有效期。單位為天,默認(rèn)情況下為30天。輸入第一步中的密碼

openssl req -new -x509 -days 365 -subj '/C=CN/ST=jiangxi/L=jiujiang/O=none/OU=none/CN=www.sry1201.cn' -key ca-key.pem -sha256 -out ca.pem

生成CA證書(shū)時(shí),需要提供一些公司信息。

  • C表示國(guó)家,中國(guó)為CN。
  • ST表示省。
  • L表示城市
  • O表示公司
  • OU表示部門(mén)名字
  • CN表示公司域名

**3.**生成服務(wù)器私鑰server-key.pem和CSR(Certificate Signing Request)server-csr.pem。CN為DockerDaemon。

server-csr.pem是一個(gè)臨時(shí)文件,生成server-cert.pem以后,可以刪除。

openssl genrsa -out server-key.pem 4096
openssl req -subj "/CN=www.example.com" -sha256 -new -key server-key.pem -out server.csr

4、配置白名單和秘鑰,生成服務(wù)端證書(shū)

0.0.0.0表示所有ip都可以連接。(這里需要注意,雖然0.0.0.0可以匹配任意,但是仍需要配置你的外網(wǎng)ip(域名)和127.0.0.1,否則客戶(hù)端會(huì)連接不上)

echo subjectAltName = IP:0.0.0.0,IP:123.123.123.123,IP:127.0.0.1 >> extfile.cnf

# 將Docker守護(hù)程序密鑰的擴(kuò)展使用屬性設(shè)置為僅用于服務(wù)器身份驗(yàn)證
echo extendedKeyUsage = serverAuth >> extfile.cnf
openssl x509 -req -days 365 -sha256 -in server.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out server-cert.pem -extfile extfile.cnf

客戶(hù)端相關(guān)證書(shū)

1、生成供客戶(hù)端發(fā)起遠(yuǎn)程訪(fǎng)問(wèn)時(shí)使用的key.pem

openssl genrsa -out key.pem 4096

2、生成client.csr(把下面的IP換成你自己服務(wù)器外網(wǎng)的IP或者域名)

openssl req -subj "/CN=123.123.123.123" -new -key key.pem -out client.csr

3、創(chuàng)建擴(kuò)展配置文件,把密鑰設(shè)置為客戶(hù)端身份驗(yàn)證用

? 生成cert.pem,輸入前面設(shè)置的密碼,生成簽名證書(shū)

echo extendedKeyUsage = clientAuth > extfile-client.cnf

openssl x509 -req -days 365 -sha256 -in client.csr -CA ca.pem -CAkey ca-key.pem  -CAcreateserial -out cert.pem -extfile extfile-client.cnf

刪除多余文件和設(shè)置權(quán)限

1.刪除臨時(shí)文件

rm -f client.csr server.csr extfile.cnf extfile-client.cnf

**2.**為了保證證書(shū)和私鑰的安全,需要修改文件的訪(fǎng)問(wèn)權(quán)限。

chmod 0400 ca-key.pem key.pem server-key.pem
chmod 0444 ca.pem server-cert.pem cert.pem

**3.**重啟Docker Daemon,加入ca.pem、server-cert.pem和server-key.pem。-H=0.0.0.0:2376表示Docker Daemon監(jiān)聽(tīng)在2376端口。

查看配置文件的位置,修改配置文件docker.service

[root@k8s-master ca]# systemctl status docker
● docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2022-10-21 18:46:28 CST; 1 months 18 days ago
     Docs: https://docs.docker.com
 Main PID: 3576 (dockerd)
    Tasks: 29
   Memory: 105.3M
   CGroup: /system.slice/docker.service
           └─3576 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

# 原文件
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

# 修改后
ExecStart=/usr/bin/dockerd --tlsverify --tlscacert=/app/docker/ca/ca.pem --tlscert=/app/docker/ca/server-cert.pem --tlskey=/app/docker/ca/server-key.pem -H tcp://0.0.0.0:2376 -H unix:///var/run/docker.sock
# daemon的配置重新加載
systemctl daemon-reload
systemctl restart docker

客戶(hù)端進(jìn)行連接

10.從服務(wù)器下載客戶(hù)端需要的證書(shū)

客戶(hù)端證書(shū)和ca證書(shū)

ca.pem
ca-key.pem
cert.pem
key.pem

配置如圖:

本地操作服務(wù)器部署鏡像

如圖

com.spotify

maven構(gòu)建和發(fā)布鏡像,不建議用了,可能是很久沒(méi)更新,跟不上新版本了,反正我操作后報(bào)錯(cuò),

官方文檔

            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>1.2.2</version>
                <configuration>
                    <!--修改imageName節(jié)點(diǎn)的內(nèi)容,改為私有倉(cāng)庫(kù)地址和端口,再加上鏡像id和 TAG,我們要直接傳到私服-->
                    <!--配置最后生成的鏡像名,docker images里的,我們這邊取項(xiàng)目名:版本-->
                    <imageName>${project.artifactId}</imageName>
                    <!--也可以通過(guò)以下方式定義image的tag信息。-->
                    <imageTags>
                        <imageTag>sry1201/${project.artifactId}:${project.version}</imageTag>
                        <imageTag>sry1201</imageTag>
                    </imageTags>
                    <!-- 來(lái)指明Dockerfile文件的所在目錄 -->
                    <dockerDirectory>${project.basedir}</dockerDirectory>
                    <dockerHost>https://43.143.136.203:2376</dockerHost>
                    <dockerCertPath>D:\17736\Desktop\dcoker-ca</dockerCertPath>
                    <!--入口點(diǎn),project.build.finalName就是project標(biāo)簽下的build標(biāo)簽下 的filename標(biāo)簽內(nèi)容,testDocker-->
                    <!--相當(dāng)于啟動(dòng)容器后,會(huì)自動(dòng)執(zhí)行java-jar/testDocker.jar-->
                    <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
                    <!--是否推送到docker私有倉(cāng)庫(kù),舊版本插件要配置maven的settings文件。 小伙伴們可以自行查閱資料研究一下。 -->
                    <pushImage>true</pushImage>
                    <registryUrl>registry.hub.docker.com</registryUrl>
                    <!-- 這里是復(fù)制 jar 包到 docker 容器指定目錄配置 -->
                    <resources>
                        <resource>
                            <targetPath>/</targetPath>
                            <directory>${project.build.directory}</directory>
                            <!--把哪個(gè)文件上傳到docker,相當(dāng)于Dockerfile里的add app.jar /-->
                            <include>${project.build.finalName}.jar</include>
                        </resource>
                    </resources>
                </configuration>
            </plugin>

嘗試了一下,雖然報(bào)500,但是鏡像在服務(wù)器上是構(gòu)建成功的,不過(guò)這些個(gè)發(fā)布和移除鏡像命令都不好使,無(wú)語(yǔ),不用這個(gè)了

Fabric8

Fabric8主要是用來(lái)構(gòu)建docker的鏡像maven插件??梢詤⒖糉abric8文檔,主要是參考資料,理解其插件。

示例項(xiàng)目地址

構(gòu)建

推送到遠(yuǎn)程倉(cāng)庫(kù)

push到遠(yuǎn)程倉(cāng)庫(kù)需要添加前綴

docker push sry1201/demot:tagname

參考下圖

推送成功截圖

不過(guò)還有問(wèn)題,就是鏡像文件似乎太大了,應(yīng)該是包含了不需要的東西

關(guān)于鏡像文件過(guò)大的問(wèn)題

DockerFile中基于java:8和基于openjdk:8-jdk-alpine的大小有一定插件

# 基于哪個(gè)鏡像
FROM java:8

這個(gè)文件夾中可以看到我們添加了那些文件到鏡像中,不包含

最終的配置文件

        <plugins>

            <plugin>
                <groupId>io.fabric8</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <configuration>
                    <dockerHost>https://43.143.136.203:2376</dockerHost>
                    <certPath>D:\17736\Desktop\dcoker-ca</certPath>
                    <registry>registry.hub.docker.com</registry>
                    <authConfig>

                        <!-- registry服務(wù)的認(rèn)證-->
                        <username>sry1201</username>
                        <password>Sry@1201-</password>
                    </authConfig>
                    <pullRegistry>https://l6b5wweg.mirror.aliyuncs.com</pullRegistry>
                    <pushRegistry>registry.hub.docker.com</pushRegistry>

                    <images>
                        <image>
                            <!--鏡像名稱(chēng) 必須是 命名空間/倉(cāng)庫(kù)名稱(chēng):鏡像版本號(hào) 否則無(wú)法推送到遠(yuǎn)程倉(cāng)庫(kù),需要手動(dòng)執(zhí)行tag命令-->
                            <name>sry1201/${project.artifactId}-test3</name>
                            <!--別名:用于容器命名和在docker-compose.yml文件只能找到對(duì)應(yīng)名字的配置-->
                            <alias>2021</alias>
                            <build>
                                <!-- dockerfile文件所在路徑 -->
                                <contextDir>${project.basedir}</contextDir>
                                <tags>
<!--                                    <tag>latest</tag>-->
                                    <tag>${project.version}</tag>
                                </tags>
                            </build>



                        </image>
                    </images>

                </configuration>
            </plugin>
        </plugins>

# 基于哪個(gè)鏡像
FROM java:8
# 復(fù)制文件到容器
ADD target/${project.build.finalName}.jar /app.jar
# 聲明需要暴露的端口-宿主機(jī)端口
EXPOSE 30012
# 配置容器啟動(dòng)后執(zhí)行的命令
ENTRYPOINT java ${JAVA_OPTS} -jar /app.jar

其他

這個(gè)插件和maven的打包插件到底有沒(méi)有關(guān)系還是不明白。。。。。

還有就是這個(gè)打包插件可以不依賴(lài)Dockerfile,不過(guò)似乎更復(fù)雜,算了文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-479791.html

關(guān)聯(lián)信息

  • 關(guān)聯(lián)的主題:
  • 上一篇:
  • 下一篇:
  • image: 20221021/1
  • 轉(zhuǎn)載自:

到了這里,關(guān)于idea中打包docker鏡像的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀(guān)點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Idea使用Docker插件實(shí)現(xiàn)maven打包自動(dòng)構(gòu)建鏡像

    Idea使用Docker插件實(shí)現(xiàn)maven打包自動(dòng)構(gòu)建鏡像

    Docker 開(kāi)啟TCP 服務(wù) 改寫(xiě)以下內(nèi)容 重啟服務(wù) 此時(shí)docker已經(jīng)開(kāi)放了2375端口,使用外部主機(jī)訪(fǎng)問(wèn) http://docker:2375/info IDEA 集成Docker 安裝Docker 插件 配置docker服務(wù)地址 點(diǎn)擊view-services,打開(kāi)docker的操作面板 雙擊docker01可以看到此docker服務(wù)下鏡像和容器 右擊docker鏡像,可以創(chuàng)建新的容器,

    2024年02月10日
    瀏覽(32)
  • 用Idea把SpringBoot項(xiàng)目打包鏡像上傳至docker

    用Idea把SpringBoot項(xiàng)目打包鏡像上傳至docker

    命令查看docker裝在哪里 ?vim docker.service 新增?-H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock ? ?我在跟pom同一層 imageName后面如果沒(méi)有冒號(hào)版本號(hào),那么會(huì)默認(rèn)latest,如果想要生成多個(gè)版本號(hào),可以用imageTags里面加即可。 后續(xù)只要maven 的clean之后,再package就可以把鏡像上傳至docker服

    2024年02月10日
    瀏覽(19)
  • SpringBoot項(xiàng)目部署(Docker)——通過(guò)Dockerfile將打包好的jar包創(chuàng)建成鏡像 & 在IDEA中配置docker,一鍵啟動(dòng)容器 & 用swagger進(jìn)行測(cè)試

    SpringBoot項(xiàng)目部署(Docker)——通過(guò)Dockerfile將打包好的jar包創(chuàng)建成鏡像 & 在IDEA中配置docker,一鍵啟動(dòng)容器 & 用swagger進(jìn)行測(cè)試

    1.Dockerfile命令初識(shí),CMD…; 2.idea配置docker,圖形化界面; 3.編寫(xiě)Dockerfile把jar包制作成鏡像,并用idea一鍵生成和啟動(dòng)容器; 4.在Linux中測(cè)試,在宿主機(jī)用swagger進(jìn)行測(cè)試; SpringBoot項(xiàng)目部署(jar包)——項(xiàng)目用maven打包成jar包 windows + Linux平臺(tái)運(yùn)行 Linux安裝java 遇到的問(wèn)題 Docker是一

    2024年02月05日
    瀏覽(39)
  • idea打包docker鏡像時(shí)出現(xiàn)“Failed to execute goal com.spotify:docker-maven-plugin:1.2.2:build (build-image) “

    idea打包docker鏡像時(shí)出現(xiàn)“Failed to execute goal com.spotify:docker-maven-plugin:1.2.2:build (build-image) “

    ?問(wèn)題解決參考地址 解決方法1:先看第一張圖片,一開(kāi)始我也是不知道什么原因?qū)е碌?,后?lái)看到build時(shí)獲取的ProgressMessage信息都是空的,然后一點(diǎn)點(diǎn)排查,然后發(fā)現(xiàn)是鏡像命名的問(wèn)題的,鏡像命名不允許使用駝峰命令。 ? 解決方法2:可能是docker 上沒(méi)有內(nèi)存了,也會(huì)報(bào)錯(cuò)。

    2024年02月11日
    瀏覽(100)
  • 【docker】Docker打包SpringBoot鏡像

    【docker】Docker打包SpringBoot鏡像

    ?????????個(gè)人主頁(yè): 五敷有你 ? ? ?? ???系列專(zhuān)欄: 中間件 ??穩(wěn)中求進(jìn),曬太陽(yáng) 前置說(shuō)明 最為原始的打包方式 spring-boot-maven-plugin 插件 jib-maven-plugin 插件 dockerfle-maven-plugin 插件 最為原始的方式 也就是使用 Docker 的打包命令去打包,麻煩,我這里不多說(shuō)。 SpringBoo

    2024年03月21日
    瀏覽(22)
  • docker 打包鏡像或容器

    因?yàn)槟撑_(tái)服務(wù)器需要部署Tomcat,但是該服務(wù)武器不能連接外網(wǎng),所以需要先pull拉一下鏡像包,如果已經(jīng)有了現(xiàn)有的鏡像就不需要拉取了,直接從第二部開(kāi)始就行。 具體操作步驟如下: 使用到的命令: docker commit :從容器創(chuàng)建一個(gè)新的鏡像 OPTIONS說(shuō)明: -a :提交的鏡像作者; -c

    2024年02月02日
    瀏覽(26)
  • docker:容器打包成鏡像

    docker:容器打包成鏡像

    簡(jiǎn)介 :docker的優(yōu)勢(shì)在于,安裝部署完成后,將已經(jīng)運(yùn)行成功的容器重新打包出新的鏡像,即可實(shí)現(xiàn)一次構(gòu)建,處處使用。這需要依賴(lài)于docker commit命令 和 docker load來(lái)配合完成。 歷史攻略: Docker:簡(jiǎn)介和常用命令分類(lèi) sanic:通過(guò)dockerfile部署 操作步驟 :以sanic:通過(guò)dockerfile部

    2024年02月11日
    瀏覽(18)
  • Docker 將容器打包成鏡像&推送鏡像到倉(cāng)庫(kù)

    Docker 將容器打包成鏡像&推送鏡像到倉(cāng)庫(kù)

    示例: 1.登錄倉(cāng)庫(kù)進(jìn)行身份驗(yàn)證 2.將本地鏡像重命名與倉(cāng)庫(kù)格式相匹配 3.推送鏡像到倉(cāng)庫(kù)

    2024年02月09日
    瀏覽(22)
  • Docker入門(mén)教程:本地打包docker鏡像

    Docker入門(mén)教程:本地打包docker鏡像

    Dockers是基于Go語(yǔ)言開(kāi)發(fā)的虛擬容器技術(shù)。以前我們部署應(yīng)用通常是將源代碼打包成一個(gè)jar包運(yùn)行,這樣就會(huì)受到運(yùn)行環(huán)境、配置環(huán)境的限制,而且程序也不能跨服務(wù)器運(yùn)行。Docker基于Linux容器技術(shù),將Java源代碼、運(yùn)行環(huán)境像MySQL、redis、jdk等通通打包成一個(gè)鏡像,實(shí)現(xiàn)“一次鏡

    2024年02月03日
    瀏覽(21)
  • 寶塔面板備份docker,鏡像打包下載到本地,鏡像還原,鏡像推送

    寶塔面板備份docker,鏡像打包下載到本地,鏡像還原,鏡像推送

    歡迎關(guān)注 『發(fā)現(xiàn)你走遠(yuǎn)了』 博客,持續(xù)更新中 歡迎關(guān)注 『發(fā)現(xiàn)你走遠(yuǎn)了』 博客,持續(xù)更新中 軟件商店-點(diǎn)擊docker管理器的設(shè)置 生成鏡像 這里可以直接點(diǎn)擊提交,你也可以自己自定義 打包鏡像 選擇打包我們剛剛生成的鏡像 下載打包好的鏡像 你可以通過(guò)上傳文件的方法上傳

    2024年02月11日
    瀏覽(51)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包