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

在Docker中使用Dockerfile實現(xiàn)ISO文件轉(zhuǎn)化為完整版Centos鏡像,并搭建集群數(shù)據(jù)倉庫

這篇具有很好參考價值的文章主要介紹了在Docker中使用Dockerfile實現(xiàn)ISO文件轉(zhuǎn)化為完整版Centos鏡像,并搭建集群數(shù)據(jù)倉庫。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

在Docker中使用Dockerfile實現(xiàn)ISO文件轉(zhuǎn)化為完整版Centos鏡像,并搭建集群數(shù)據(jù)倉庫

docker iso鏡像,Docker數(shù)據(jù)倉庫,docker,centos,數(shù)據(jù)倉庫,運維,后端
在上一篇文章中,我們提到了如何使用Docker官方版本的centos7搭建容器集群并實現(xiàn)同一ip下使用不同端口的ssh遠程登錄,但是其中遇到了非常多的問題,例如:

官方的centos7過于“簡陋”,導致我們運行腳本時因為沒有預(yù)裝依賴包而報錯!

這個可太致命了,所以這篇文章教大家如何使用Centos官方ISO文件搭建docker究極完整版鏡像,并實現(xiàn)數(shù)據(jù)倉庫搭建

注意了,如果你想在虛擬機上運行docker,本教程僅適合服務(wù)器版本的的Ubuntu(點這里下載服務(wù)器版本鏡像,點擊這里查看安裝教程)或者是Centos,因為默認桌面版本的Linux系統(tǒng)沒有默認啟動systemd服務(wù),會導致docker容器內(nèi)運行centos時無法啟動systemctl命令!

1. 創(chuàng)建docker鏡像

這里我們使用Dockerfile文件實現(xiàn)鏡像的一鍵創(chuàng)建,并在鏡像中預(yù)裝可能用到的依賴庫,讓我們的centos達到“基本能用”的程度:

Dcokerfile文件如下,注意這里會用到Cenos官方的ISO文件(點擊下載,或者你往下面看)

FROM centos:7.2.1511

COPY CentOS-7-x86_64-DVD-1511.iso /tmp/CentOS-7-x86_64-DVD-1511.iso

RUN yum -y update && \
    yum -y install wget && \
    yum -y install tar && \
    yum -y install bzip2 && \
    yum -y install unzip && \
    yum -y install net-tools && \
    yum -y install tcpdump && \
    yum -y install telnet && \
    yum -y install vim && \
    yum -y install git && \
    yum -y install openssh-server && \
    yum -y install java-1.8.0-openjdk && \
    yum -y install perl && \
    yum -y install python && \
    yum -y install ruby && \
    yum -y install php && \
    yum -y install gcc && \
    yum -y install make && \
    yum -y install autoconf && \
    yum -y install automake && \
    yum -y install libtool && \
    yum -y install libxml2-devel && \
    yum -y install libpng-devel && \
    yum -y install libjpeg-devel && \
    yum -y install freetype-devel && \
    yum -y install openssl-devel && \
    yum -y install libcurl-devel && \
    yum -y install libxslt-devel && \
    yum -y install bzip2-devel && \
    yum -y install readline-devel && \
    yum -y install sqlite-devel && \
    yum -y install postgresql-devel && \
    yum -y install mariadb-server && \
    yum -y install httpd && \
    yum -y install vsftpd && \
    yum -y install epel-release && \
    yum -y install supervisor && \
    yum -y install libselinux-utils && \
    yum -y install firewalld && \
    yum -y install lrzsz && \
    yum -y install NetworkManager &&\
    yum -y clean all

RUN mkdir -p /var/run/sshd && \
    echo 'root:password' | chpasswd && \
    sed -i 's/^#\?PermitRootLogin.*/PermitRootLogin yes/' /etc/ssh/sshd_config && \
    sed -i 's/^#\?PasswordAuthentication.*/PasswordAuthentication yes/' /etc/ssh/sshd_config && \
    sed -i 's/^#\?UseDNS.*/UseDNS no/' /etc/ssh/sshd_config && \
    sed -i 's/^#\?Storage=.*/Storage=persistent/' /etc/systemd/journald.conf && \
    systemctl enable mariadb.service && \
    systemctl enable httpd.service && \
    systemctl enable vsftpd.service && \
    systemctl enable sshd.service

EXPOSE 22 80 3306 20 21

CMD ["/usr/sbin/init"]

注意,這里增加了一行

sed -i 's/^#\?Storage=.*/Storage=persistent/' /etc/systemd/journald.conf && \,用于設(shè)置systemd journald的持久化存儲。同時,啟用了

systemctl enable mariadb.service、

systemctl enable httpd.service、

systemctl enable vsftpd.service

systemctl enable sshd.service

使得容器啟動后這些服務(wù)會自動啟動,這些都是一些網(wǎng)絡(luò)基礎(chǔ)服務(wù)。

同時我們的ssh可以自動啟動完成,不需要我們額外去配置了

Dockerfile編寫完成后我們在文件當前目錄下啟動如下命令(注意對應(yīng)ISO文件也應(yīng)該在當前目錄下)
docker build -t mycentos:7.2-iso .
# mycentos:7.2-iso可以換成自己的dockerhub上的名稱/鏡像名稱,規(guī)范命名才可以上傳到倉庫里
創(chuàng)建完成之后然后你可以使用如下命令進行查看
docker ps -a
如果你不想寫文件,也不想下載ISO,可以到我的docker公開倉庫上pull一個已經(jīng)搭建好了的鏡像
docker pull kibety/centos:7.2-iso

#或者mini版本的
docker pull kibety/centos:7.2-iso-mini
至此,我們的鏡像準備完畢,接下來我們準備搭建centos容器集群了

2. 搭建Centos容器集群

首先創(chuàng)建docker bridge網(wǎng)橋
sudo docker network create MyNetWork

創(chuàng)建網(wǎng)橋可以方便網(wǎng)絡(luò)管理,并且讓容器自動歸屬于同一網(wǎng)段下

創(chuàng)建三個不同端口的結(jié)點容器并加入網(wǎng)橋中
sudo docker run -itd --restart=always  --hostname node01 --name Node01 -p 21001:8088 -p 30001:8443 -p 20001:50070 -p 10001:22 -v /data/sda/sharedata:/share --network MyNetWork --privileged=true kibety/centos:7.2-iso /sbin/init
sudo docker run -itd --restart=always  --hostname node02 --name Node02 -p 21002:8088 -p 30002:8443 -p 20002:50070 -p 10002:22 -v /data/sda/sharedata:/share --network MyNetWork --privileged=true kibety/centos:7.2-iso /sbin/init
sudo docker run -itd --restart=always  --hostname node03 --name Node03 -p 21003:8088 -p 30003:8443 -p 20003:50070 -p 10003:22 -v /data/sda/sharedata:/share --network MyNetWork --privileged=true kibety/centos:7.2-iso /sbin/init
# 參數(shù)解釋:
# -itd
# 選項		選項簡寫		說明
# –detach		-d		在后臺運行容器,并且打印容器id
# –interactive	-i		即使沒有連接,也要保持標準輸入保持打開狀態(tài),一般與 -t 連用
# –tty			-t		分配一個偽tty,一般與 -i 連用
# --restart=always	機器啟動時自啟動
# --name		容器名稱
# --hostname	初始化的hostname
# -p 10001:22	端口映射 宿主機端口:容器端口這里為22表示容器內(nèi)ssh端口
# --privileged=true		通過特權(quán)模式進入docker,不僅可以使用systemctl命令(centos 7系統(tǒng)),還可以開啟ssh服務(wù)
# --network NodeNetWork 將容器結(jié)點加入網(wǎng)橋中

# 注意:在 Linux Docker中無法使用 systemd(systemctl) 相關(guān)命令的原因是 1號進程不是 init ,而是其他例如 /bin/bash ,所以導致缺少相關(guān)文件無法運行。(System has not been booted with systemd as init system (PID 1). Can't operat
#解決方案:/sbin/init并且--privilaged=true一定要加上
接下來我們進入容器,開始基礎(chǔ)配置(開啟三個終端)
sudo docker exec -it Node01 /bin/bash
sudo docker exec -it Node02 /bin/bash
sudo docker exec -it Node03 /bin/bash
每臺啟動passwd來初始化root用戶密碼(以node01為例)
passwd

docker iso鏡像,Docker數(shù)據(jù)倉庫,docker,centos,數(shù)據(jù)倉庫,運維,后端

查看三個centos容器中的網(wǎng)絡(luò)配置
ifconfig

docker iso鏡像,Docker數(shù)據(jù)倉庫,docker,centos,數(shù)據(jù)倉庫,運維,后端

docker iso鏡像,Docker數(shù)據(jù)倉庫,docker,centos,數(shù)據(jù)倉庫,運維,后端
docker iso鏡像,Docker數(shù)據(jù)倉庫,docker,centos,數(shù)據(jù)倉庫,運維,后端

在同一個網(wǎng)段下,完美!

接下來我們可以windows上使用docker宿主機的ip(在宿主機中ifconfig或者ip addr查看)與三個容器的22端口映射登錄容器,檢查是否正常

docker iso鏡像,Docker數(shù)據(jù)倉庫,docker,centos,數(shù)據(jù)倉庫,運維,后端

可以看到正常登錄node結(jié)點,可以使用windows的terminal或者ssh遠程連接容器結(jié)點了
至此,結(jié)點搭建完畢,下面我們進入數(shù)據(jù)倉庫的搭建工作

3. 數(shù)據(jù)倉庫的環(huán)境搭建

在上一步中我們已經(jīng)創(chuàng)建了3個加入同一網(wǎng)橋中的centos容器結(jié)點,所以我們不需要再去修改其ip地址了,這也是docker的優(yōu)勢之一

下面是我們要搭建的集群軟件規(guī)劃,這里采用的教程是b站上的up:哈嘍鵬程(在虛擬機上搭建的,講的非常不錯,大家可以去聽聽)

docker iso鏡像,Docker數(shù)據(jù)倉庫,docker,centos,數(shù)據(jù)倉庫,運維,后端

3.1 自動化腳本準備
首先在Node01上準備自動化腳本
由于腳本只能在hadoop上運行,所以我們先提前在home目錄下創(chuàng)建hadoop文件夾,將腳本clone至目錄下
[root@node01 ~]# mkdir /home/hadoop/
[root@node01 hadoop]# git clone https://github.com/MTlpc/automaticDeploy.git 

docker iso鏡像,Docker數(shù)據(jù)倉庫,docker,centos,數(shù)據(jù)倉庫,運維,后端

額…clone失敗了,這多半是DNS沒有配置正確導致的,沒關(guān)系,一行代碼解決問題(其他結(jié)點也運行一下這個代碼,以除后患…)

echo "nameserver 8.8.8.8" > /etc/resolv.conf

docker iso鏡像,Docker數(shù)據(jù)倉庫,docker,centos,數(shù)據(jù)倉庫,運維,后端

再次clone,成功!

接著我們使用vim修改hadoop/automaticDeploy/文件夾下的host_ip.txt配置文件。
# vim修改腳本的host_ip配置文件
[root@node01 automaticDeploy]# ls
configs.txt  frames.txt  hadoop  host_ip.txt  logs.sh  README.md  systems
[root@node01 automaticDeploy]# vim host_ip.txt

例如我這里的配置(ip可以ifconfig查看各個容器結(jié)點的ip,hostname和密碼都可以自定義)

172.18.0.2 node01 root HUTB2001
172.18.0.3 node02 root HUTB2001
172.18.0.4 node03 root HUTB2001
給automaticDeploy腳本下的兩個目錄賦權(quán)
[root@node01 automaticDeploy]# chmod +x /home/hadoop/automaticDeploy/hadoop/* /home/hadoop/automaticDeploy//systems/*
安裝上傳組件(我們的dockerfile中已經(jīng)安裝好了可以不用安裝),并將frimes.zip(腳本)安裝包使用xshell軟件通過rz命令上傳
[root@node01 automaticDeploy]# yum install lrzsz -y

# 到home目錄下rz命令上傳安裝包,為了xshell防止亂碼,建議加入 -be參數(shù)
[root@node01 home]# rz -be

# 在home目錄下將frimes.zip腳本解壓到我們的automaticDeploy目錄下
[root@node01 home]# unzip frames.zip -d  /home/hadoop/automaticDeploy/
解壓完成后我們在其他兩個結(jié)點也創(chuàng)建/home/hadoop目錄,并將node01上的目錄通過scp分享至其余結(jié)點
# 通過ssh創(chuàng)建node02、node03的目錄
[root@node01 hadoop]# ssh root@172.18.0.3 "mkdir /home/hadoop"
[root@node01 hadoop]# ssh root@172.18.0.4 "mkdir /home/hadoop"

# 將腳本文件分享給node02、node03
[root@node01 hadoop]# scp -r /home/hadoop/automaticDeploy/ root@172.18.0.3:/home/hadoop/
[root@node01 hadoop]# scp -r /home/hadoop/automaticDeploy/ root@172.18.0.4:/home/hadoop/

# 如果出現(xiàn)報錯bash: scp: command not found,那就yum install openssh-clients安裝這個命令,注意node02和03上也要安裝此命令
至此,結(jié)點腳本準備完畢,接下來運行腳本自動安裝程序
3.2 運行腳本
分享完成后,在每個結(jié)點的automaticDeploy/system目錄下都要啟動batchOperate.sh腳本文件
./batchOperate.sh 

這個腳本主要是配置免密鑰登錄、更新yum源、安裝jdk、配置host等環(huán)境操作

啟動腳本完成后再驗證一下配置是否成功
# 首先查看是否可以在結(jié)點之間免密登錄,以node01到node02為例,如果不行那就ssh-copy-id解決問題
[root@node01 ~]# ssh node02
Last login: Fri Mar 24 07:57:14 2023 from 172.21.102.10
[root@node02 ~]# exit
logout
測試完成沒問題后,每個結(jié)點分別進入automaticDeploy/hadoop目錄下安裝hadoop集群,然后source一下
./installHadoop.sh

source /etc/profile
在Node01節(jié)點(主節(jié)點)上初始化namenode、啟動hadoop集群、查看運行狀態(tài)
[root@node01 hadoop]# hadoop namenode -format

[root@node01 hadoop]# start-all.sh

[root@node01 hadoop]# jps
# 從節(jié)點ndoe02、node03上也看一下

嗯。。。該有的都有了

docker iso鏡像,Docker數(shù)據(jù)倉庫,docker,centos,數(shù)據(jù)倉庫,運維,后端

docker iso鏡像,Docker數(shù)據(jù)倉庫,docker,centos,數(shù)據(jù)倉庫,運維,后端

docker iso鏡像,Docker數(shù)據(jù)倉庫,docker,centos,數(shù)據(jù)倉庫,運維,后端

至此hadoop安裝成功,可以在瀏覽器中使用宿主機ip:20001查看映射到node01上50070端口的hadoop網(wǎng)頁端(例如我這里訪問地址是:172.21.198.185:20001)

docker iso鏡像,Docker數(shù)據(jù)倉庫,docker,centos,數(shù)據(jù)倉庫,運維,后端

小提示:hadoop的瀏覽器端口是50070,如果要使用外網(wǎng)訪問docker容器中的hadoop,就要在創(chuàng)建容器時添加端口映射至容器內(nèi)的50070端口,這和ssh映射至22端口是一個道理

安裝完成hadoop之后我們首先安裝node02的mysql,因為node03上的hive和tez需要依賴mysql
[root@node02]/home/hadoop/automaticDeploy/hadoop# ./installMysql.sh 

在運行時會出現(xiàn)卡住的情況。。。。一排查發(fā)現(xiàn)(排了兩小時。。。):./installMysql.sh中下面這條命令卡住了 :

systemctl start mysqld.service

問了一下chatGPT:

docker iso鏡像,Docker數(shù)據(jù)倉庫,docker,centos,數(shù)據(jù)倉庫,運維,后端

docker iso鏡像,Docker數(shù)據(jù)倉庫,docker,centos,數(shù)據(jù)倉庫,運維,后端

好吧,似乎這條命令占用了shell,導致文件下面的命令無法執(zhí)行,我們自己運行這條命令,然后在./installMysql.sh文件中注釋掉這條命令

docker iso鏡像,Docker數(shù)據(jù)倉庫,docker,centos,數(shù)據(jù)倉庫,運維,后端

# 無意間看到sh文件中有sudo命令,雖然我們是root用戶,但是沒有安裝sudo命令,所以先安裝一下(三個最好都安裝,怕報錯555)
yum install sudo 

# 然后再node02上更新一下mysql(有些東西太古老了)
mysql_upgrade

# 最后,我們再node02上重新運行這個腳本
[root@node02]/home/hadoop/automaticDeploy/hadoop# ./installMysql.sh 

docker iso鏡像,Docker數(shù)據(jù)倉庫,docker,centos,數(shù)據(jù)倉庫,運維,后端

有冒紅(血壓上來了…),乍一看沒關(guān)系,因為我們運行過這個腳本,所以mysql的3306端口被占用了很正常,還是有點害怕,先上mysql看一下databases正不正常
# 密碼是DBa2020*
[root@node02 hadoop]# mysql -uroot -p

# 在mysql中
show database;

docker iso鏡像,Docker數(shù)據(jù)倉庫,docker,centos,數(shù)據(jù)倉庫,運維,后端

一切正常(松了口氣。。。。)
node02搞定之后,我們在node03的automaticDeploy/hadoop目錄下啟動腳本安裝hive和tez
# 腳本會自動識別是否可以裝其他的庫,這里自動把tez和hive一起裝了
[root@node03 hadoop]# ./installHive.sh 

docker iso鏡像,Docker數(shù)據(jù)倉庫,docker,centos,數(shù)據(jù)倉庫,運維,后端

然后會發(fā)現(xiàn)有報錯,但是都是info信息,ip指向了我們的node02結(jié)點,按照b站上作者哈嘍鵬程大佬的說法,應(yīng)該是node02結(jié)點的網(wǎng)絡(luò)或者配置有問題,我們先不管,重啟一下node02的網(wǎng)絡(luò)配置

root@node02 ~]# systemctl restart NetworkManager.service
重啟完成后我們繼續(xù)在ndoe03上安裝sqoop,然后source一下
[root@node03 hadoop]# ./installSqoop.sh 

[root@node03 hadoop]# source /etc/profile

docker iso鏡像,Docker數(shù)據(jù)倉庫,docker,centos,數(shù)據(jù)倉庫,運維,后端

接著我們在三個結(jié)點上安裝presto、azkaban
[root@node01 hadoop]# ./installPresto.sh

[root@node02 hadoop]# ./installPresto.sh

[root@node03 hadoop]# ./installPresto.sh

docker iso鏡像,Docker數(shù)據(jù)倉庫,docker,centos,數(shù)據(jù)倉庫,運維,后端

沒問題,但是在安裝azkaban的時候出現(xiàn)了錯誤

[root@node01 hadoop]# ./installAzkaban.sh

[root@node02 hadoop]# ./installAzkaban.sh

[root@node03 hadoop]# ./installAzkaban.sh

docker iso鏡像,Docker數(shù)據(jù)倉庫,docker,centos,數(shù)據(jù)倉庫,運維,后端

網(wǎng)上查了一下發(fā)現(xiàn)在執(zhí)行installAzkaban.sh過程中,無法生成keystore,檢查后發(fā)現(xiàn)哈嘍鵬程大佬的實驗環(huán)境為中文,而我們使用的是centos7的英文版本,造成無法自動應(yīng)答密碼,地區(qū)等信息,從而導致無法拷貝keystore等問題,這里參考了這篇博主的文章來設(shè)置中文字符集:

在每個結(jié)點下以此執(zhí)行下面命令修改為中文字符集:

# 安裝中文字符集包和環(huán)境
yum install -y kde-l10n-Chinese

yum reinstall -y glibc-common

localedef -c -f UTF-8 -i zh_CN zh_CN.UTF-8

# 修改字符集配置
echo 'LANG="zh_CN.UTF-8"' > /etc/locale.conf && source /etc/locale.conf

echo "export LC_ALL=zh_CN.UTF-8" >> /etc/profile && source /etc/profile

# 最后驗證配置是否生效
[root@node01 hadoop]# echo $LANG
zh_CN.UTF-8
每個結(jié)點的中文字符配置成功后,我們繼續(xù)完成每個結(jié)點的azkaban的安裝

docker iso鏡像,Docker數(shù)據(jù)倉庫,docker,centos,數(shù)據(jù)倉庫,運維,后端

可以看到?jīng)]有問題了!

那么接下來我們在node03安裝一個presto的web可視化插件
[root@node03 hadoop]# ./installYanagishima.sh 

docker iso鏡像,Docker數(shù)據(jù)倉庫,docker,centos,數(shù)據(jù)倉庫,運維,后端

輕松搞定文章來源地址http://www.zghlxwxcb.cn/news/detail-663160.html

到最后我們在每個結(jié)點上source一下
source /etc/profile
至此,所有環(huán)境搭建完畢,下一篇博客我會帶著大家實現(xiàn)一些docker上centos集群數(shù)據(jù)倉庫的實戰(zhàn)。大家如果覺得這篇文章有幫助可以多多點贊支持一下。
該版本下其他常用命令
# 重啟網(wǎng)絡(luò)服務(wù)
systemctl restart NetworkManager.service
寫在最后:
搭建這個docker環(huán)境耗費了很多時間才肝出來,其中遇到的bug不計其數(shù),很多次都想要放棄,但是每次看著一個個錯誤被解決的時候,這種激動的心情支撐著我一步一步繼續(xù)往下走。所以我也希望大家在遇到很多問題的時候也要嘗試著自己找各種方式解決一下,打不敗我們的只會讓我們更加強大。也許這就是程序員喜歡折騰的樂趣所在。。。。。。

到了這里,關(guān)于在Docker中使用Dockerfile實現(xiàn)ISO文件轉(zhuǎn)化為完整版Centos鏡像,并搭建集群數(shù)據(jù)倉庫的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • docker 系列之 Dockerfile 文件里 cmd命令與entrypoint命令區(qū)別

    docker 系列之 Dockerfile 文件里 cmd命令與entrypoint命令區(qū)別

    cmd給出的是一個容器的默認的可執(zhí)行體。也就是容器啟動以后,默認的執(zhí)行的命令。重點就是這個“默認”。意味著,如果docker run沒有指定任何的執(zhí)行命令或者dockerfile里面也沒有entrypoint,那么,就會使用cmd指定的默認的執(zhí)行命令執(zhí)行。同時也從側(cè)面說明了entrypoint的含義,它

    2024年02月05日
    瀏覽(16)
  • Docker技術(shù)入門| Part03:Dockerfile詳解(Dockerfile概念、Dockerfile 指令、使用Dockerfile構(gòu)建鏡像)

    Docker鏡像原理 Docker鏡像是由特殊的文件系統(tǒng)疊加而成 最底端是bootfs,并使用宿主機的bootfs 第二層是root文件系統(tǒng)rootfs,稱為base image 然后再往上可以疊加其他的鏡像文件 統(tǒng)文件系統(tǒng)(UnionFile System)技術(shù)能夠?qū)⒉煌膶诱铣梢粋€文件系統(tǒng),為這些層提供了一個統(tǒng)的視角,這樣就隱

    2024年02月09日
    瀏覽(92)
  • Docker Dockerfile 使用方法

    目錄 Dockerfile 介紹 構(gòu)建mysql鏡像 構(gòu)建JDK鏡像 當使用Docker構(gòu)建容器化應(yīng)用程序時,Dockerfile是一個用于定義容器鏡像的文本文件。它包含了一系列指令,告訴Docker如何從基礎(chǔ)鏡像(通常是官方或自定義的操作系統(tǒng)鏡像)構(gòu)建出最終的鏡像,以及如何配置容器中的環(huán)境、文件和應(yīng)

    2024年02月13日
    瀏覽(18)
  • Docker | 使用Dockerfile制作鏡像

    Docker | 使用Dockerfile制作鏡像

    ?作者簡介:大家好,我是Leo,熱愛Java后端開發(fā)者,一個想要與大家共同進步的男人???? ??個人主頁:Leo的博客 ??當前專欄:Docker系列 ?特色專欄: MySQL學習 ??本文內(nèi)容: Docker | 使用Dockerfile制作鏡像 ??個人知識庫: [Leo知識庫]https://gaoziman.gitee.io/blogs/),歡迎大家訪

    2024年02月04日
    瀏覽(96)
  • 微服務(wù)項目容器編排docker-compose.yml、Dockerfile文件模板、相關(guān)配置文件、shell腳本

    微服務(wù)項目容器編排docker-compose.yml、Dockerfile文件模板、相關(guān)配置文件、shell腳本

    docker環(huán)境變量文件 如果定義的環(huán)境變量名與宿主機的一樣,則優(yōu)先宿主機上的。 部署腳本deploy.sh 批量復制文件到對應(yīng)目錄copy.sh

    2024年02月11日
    瀏覽(54)
  • Docker應(yīng)用-使用Dockerfile創(chuàng)建鏡像

    Docker應(yīng)用-使用Dockerfile創(chuàng)建鏡像

    Dockerfile是由一行行命令語句組成并且支持以#開頭的注釋行。一般而言Dockerfile分為四個部分:基礎(chǔ)鏡像信息、維護者信息、鏡像操作指令和容器啟動時的執(zhí)行指令。比如: 其中,一開始必須指明所基于的鏡像名稱,接下來一般會說明維護者的信息。后面是鏡像的操作指令,例

    2024年02月21日
    瀏覽(20)
  • Docker Compose映射卷的作用是什么,dockerfile這個文件有什么區(qū)別和聯(lián)系?

    Docker Compose映射卷的作用是什么,dockerfile這個文件有什么區(qū)別和聯(lián)系?

    Docker Compose中映射卷(Volumes)的作用和Dockerfile之間既有區(qū)別也有聯(lián)系。下面詳細解釋兩者的作用、區(qū)別和聯(lián)系: Docker Compose映射卷的作用 在Docker Compose中,卷(Volumes)用于數(shù)據(jù)持久化和數(shù)據(jù)共享: 數(shù)據(jù)持久化 :容器自身是易失的,當容器被刪除時,存儲在容器內(nèi)部的數(shù)據(jù)也

    2024年02月21日
    瀏覽(14)
  • Docker 解析:使用 Dockerfile 自動構(gòu)建鏡像

    簡介 Docker 容器是使用 基礎(chǔ) 鏡像創(chuàng)建的。一個鏡像可以是基本的,只包含操作系統(tǒng)的基本要素,也可以包含一個準備好啟動的復雜的預(yù)構(gòu)建應(yīng)用程序堆棧。 在使用 Docker 構(gòu)建鏡像時,每個操作(例如執(zhí)行的命令,比如 apt-get install)都會形成一個新的層疊在之前的層之上。然

    2024年03月26日
    瀏覽(35)
  • Docker 項目如何使用 Dockerfile 構(gòu)建鏡像?

    1.1、Docker 簡介 :講述 Docker 的起源、它是如何革新現(xiàn)代軟件開發(fā)的,以及它為開發(fā)者和運維團隊帶來的好處。重點強調(diào) Docker 的輕量級特性和它在提高應(yīng)用部署、擴展和隔離方面的優(yōu)勢。 本文已收錄于,我的技術(shù)網(wǎng)站 ddkk.com,有大廠完整面經(jīng),工作技術(shù),架構(gòu)師成長之路,等

    2024年01月16日
    瀏覽(35)
  • Docker容器化技術(shù)(使用Dockerfile制作鏡像)

    Docker容器化技術(shù)(使用Dockerfile制作鏡像)

    Docker 支持通過擴展現(xiàn)有鏡像,創(chuàng)建新的鏡像。實際上,Docker Hub 中 99% 的鏡像都是通過在 base 鏡像中安裝和配置需要的軟件構(gòu)建出來的。 1、Docker 鏡像為什么分層 鏡像分層最大的一個好處就是共享資源。 比如說有多個鏡像都從相同的 base 鏡像構(gòu)建而來,那么 Docker Host 只需在

    2024年03月19日
    瀏覽(860)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包