五月综合激情婷婷六月,日韩欧美国产一区不卡,他扒开我内裤强吻我下面视频 ,无套内射无矿码免费看黄,天天躁,日日躁,狠狠躁

新聞動(dòng)態(tài)

Docker數(shù)據(jù)管理與網(wǎng)絡(luò)通信的使用

發(fā)布日期:2022-02-20 11:29 | 文章來(lái)源:gibhub

可以通過(guò)Dokcer核心及安裝來(lái)安裝Docker及簡(jiǎn)單操作。

一.Docker鏡像的創(chuàng)建方法

Docker鏡像除了是Docker的核心技術(shù)之外,也是應(yīng)用發(fā)布的標(biāo)準(zhǔn)格式。一個(gè) 完整的Docker鏡像可以支撐- -個(gè)Docker 容器的運(yùn)行,在Docker的整個(gè)使用過(guò)程中,進(jìn)入- -個(gè)已經(jīng)定型的容器之后,就可以在容器中進(jìn)行操作,最常見(jiàn)的操作就是在容器中安裝應(yīng)用服務(wù),如果要把已經(jīng)安裝的服務(wù)進(jìn)行遷移,就需要把環(huán)境及搭建的服務(wù)生成新的鏡像。

(1)基于已有鏡像創(chuàng)建

基于已有鏡像創(chuàng)建主要使用docker commit命令。其實(shí)質(zhì)就是把一個(gè)容 器里面運(yùn)行的程序及該程序的運(yùn)行環(huán)境打包起來(lái)生成新的鏡像。

命令格式如下:

docker commit 【選項(xiàng)】 容器ID/名稱 倉(cāng)庫(kù)名稱:【標(biāo)簽】

參數(shù)如下:

  • -m : 說(shuō)明信息
  • -a : 作者信息
  • -p : 生成過(guò)程中停止鏡像來(lái)創(chuàng)建新鏡像

(1)先安裝Docker,在創(chuàng)建個(gè)鏡像

[root@localhost ~]# yum -y install docker
[root@localhost ~]# systemctl start docker
[root@localhost ~]# mount /dev/cdrom /media/
mount: /dev/sr0 寫保護(hù),將以只讀方式掛載
[root@localhost ~]# cd /media/
[root@localhost media]# ls
apache-tomcat-8.5.16.tar.gz dhcp     jdk-8u91-linux-x64.tar.gz
centos            httpd     registry.tar.gz
centos6           httpd_centos ubuntu-12.04-x86_64-minimal.tar.gz
[root@localhost media]# docker load < dhcp \\zair載入鏡像到本地
[root@localhost media]# docker images \\查看鏡像
[root@localhost media]# docker create -it docker.io/networkboot/dhcpd /bin/bash  \\創(chuàng)建容器
dfbe3a15f462d82674cfdfe87dfb7c4b4b1dcf2267e5c0043510cbe10f11a65b
[root@localhost /]# docker ps -a \\查看容器
CONTAINER ID    IMAGE             COMMAND         CREATED       STATUS       PORTS        NAMES
dfbe3a15f462    docker.io/networkboot/dhcpd  "/entrypoint.sh /b..."  About a minute ago  Created                 determined_dubinsky
[root@localhost /]# docker start dfbe3a15f462 \\啟動(dòng)容器
dfbe3a15f462
[root@localhost /]# docker exec -it dfbe3a15f462 /bin/bash
root@dfbe3a15f462:/# touch 123 \\創(chuàng)建倆個(gè)文件
root@dfbe3a15f462:/# touch 456

(2) 啟動(dòng)一個(gè)鏡像,在容器里做修改,然后將修改后的容器提交為新的鏡像,需要記住該容器的D號(hào),例如:

[root@localhost /]# docker ps -a
CONTAINER ID    IMAGE             COMMAND         CREATED       STATUS       PORTS        NAMES
dfbe3a15f462    docker.io/networkboot/dhcpd  "/entrypoint.sh /b..."  5 minutes ago    Up 2 minutes              determined_dubinsky

(3)使用dockercommit命令創(chuàng)建一個(gè)新鏡像,如下:

[root@localhost /]# docker commit -m "newdhcp" -a "xws" dfbe3a15f462 docker:mydhcp
sha256:2c1acb192f78bbbb584fc52954a179eb0f10730e0cd58d120d952439ead45b00

(4)創(chuàng)建完成后.會(huì)返回新創(chuàng)建鏡像的ID信息。查看本地鏡像列表可以看到新創(chuàng)建的鏡像信息:

[root@localhost /]# docker images
REPOSITORY          TAG         IMAGE ID      CREATED       SIZE
docker            mydhcp       2c1acb192f78    About a minute ago  125 MB
docker.io/networkboot/dhcpd  latest       6f98b6b9b486    19 months ago    125 MB

(2)基于本地模板創(chuàng)建

通過(guò)導(dǎo)入操作系統(tǒng)模板文件可以生成鏡像,模板可以從OPENVZ 開(kāi)源項(xiàng)目下載,下載地址為
http://openvz.org/Download/template/precreated.

用 命令下載如下

wget http://down1oad. openvz . org/ template/precreated/ubuntu-12.04-x86_ 64-minimal.tar.gz

(3)基于Dockerfile創(chuàng)建

除了手動(dòng)生成Docker鏡像之外,可以使用Dockerfile自動(dòng)生成鏡像。Dockerfile 是由-組指令組成的文件,其中每條指令對(duì)應(yīng)Linux中的一條命令, Docker 程序?qū)⒆x取Dockerfile中的指令生成指定鏡像。

Dockerfile結(jié)構(gòu)大致分為4個(gè)部分:基礎(chǔ)鏡像信息、維護(hù)者信息.鏡像操作指令和容器啟動(dòng)時(shí)執(zhí)行指令

在編寫Dockerfile時(shí),有嚴(yán)格的格式需要遵循:第一行必須使用FROM指令指明所基于的鏡像名稱:之后使用MAINTAINER指令說(shuō)明維護(hù)該鏡像的用戶信息:然后是鏡像操作相關(guān)指令,如RUN指令,每運(yùn)行一條指令,都會(huì)給基礎(chǔ)鏡像添加新的一層;最后使用CMD指令來(lái)指定啟動(dòng)容器時(shí)要運(yùn)行的命令操作。

案例:使用Dockerfile創(chuàng)建鏡像并在容器中運(yùn)行

1.建立工作目錄

[root@localhost /]# mkdir apache
[root@localhost /]# cd apache/

2.創(chuàng)建并編寫Dockerfile文件

[root@localhost media]# docker load < centos  \\先把centos載入到本地
[root@localhost apache]# vim Dockerfile
FROM centos  \\基于centos基礎(chǔ)鏡像
MAINTAINER The Centos projier \\維護(hù)該鏡像用戶信息,后面隨便寫
RUN yum -y update  \\鏡像操作指令安裝apache軟件包
RUN yum -y install httpd
EXPOSE 80  \\開(kāi)啟80端口
ADD index.html /var/www/html/index.html //復(fù)制網(wǎng)站首頁(yè)文件
ADD run.sh /run.sh  //將執(zhí)行腳本復(fù)制到鏡像中
RUN chmod 775 /run.sh
RUN systemctl disable httpd  \\設(shè)置apache開(kāi)啟不啟動(dòng)
CMD 【“/run.sh”】  \\啟動(dòng)容器執(zhí)行腳本

3.編寫執(zhí)行腳本內(nèi)容

[root@localhost apache]# vim run.sh
#!/bin/bash                
rm -rf /run/httpd/*             \\清理http的緩存
exec /usr/sbin/apachectl -D FOREGROUND  \\啟動(dòng)apache服務(wù)

4.創(chuàng)建測(cè)試頁(yè)面

[root@localhost apache]# echo "asd" >index.html
[root@localhost apache]# ls
Dockerfile index.html run.sh

5.使用Dockerfile生成鏡像

編寫完成Dockerfile及相關(guān)內(nèi)容之后,可以通過(guò)docker build 命令來(lái)創(chuàng)建鏡像。

docker build 【選項(xiàng)】 路徑

使用方才編寫的dockerfile自動(dòng)生成鏡像

[root@localhost apache]# docker build -t httpd:centos .

在自動(dòng)生成鏡像的命令指定鏡像后,一定不要忘記寫新生成鏡像的存放路徑,也就是空格后的一個(gè)”."代表當(dāng)前路徑,否則會(huì)報(bào)錯(cuò)。

6.使用新的鏡像運(yùn)行容器

將新生成的鏡像加載到容器中運(yùn)行

[root@localhost /]# docker run -d -p 12345:80 httpd:centos
ee9adf324443b006ead23f2d9c71f86d1a4eb73358fb684ee3a2d058a0ac4243
[root@localhost apache]# docker ps -a
CONTAINER ID    IMAGE             COMMAND         CREATED       STATUS       PORTS          NAMES
99e9234cefe5    httpd:centos         "/run.sh"        8 seconds ago    Up 7 seconds    0.0.0.0:12345->80/tcp  youthful_lumiere
dfbe3a15f462    docker.io/networkboot/dhcpd  "/entrypoint.sh /b..."  56 minutes ago   Up 53 minutes                determined_dubinsky
//使用新生成的鏡像加載到容器中運(yùn)行
//“-p”選項(xiàng)實(shí)現(xiàn)從本地端口12345到容器中80端口的映射

用瀏覽器訪問(wèn)網(wǎng)頁(yè)

二.Docker的數(shù)據(jù)管理

在Docker中,為了方便查看容器內(nèi)產(chǎn)生的數(shù)據(jù)或者將多個(gè)容器之間的數(shù)據(jù)實(shí)現(xiàn)共享,會(huì)涉及容器的數(shù)據(jù)管理操作。管理Docker容器中的數(shù)據(jù)主要有兩種方式:數(shù)據(jù)卷(Data Volumes)和數(shù)據(jù)卷容器(Data Volumes Containers)。

(1)數(shù)據(jù)卷

數(shù)據(jù)卷是一個(gè)供容器使用的特殊目錄,位于容器中,可將宿主機(jī)的目錄掛載到數(shù)據(jù)卷上,對(duì)數(shù)據(jù)卷的修改操作立刻可見(jiàn),并且更新數(shù)據(jù)不會(huì)影響鏡像.從而實(shí)現(xiàn)數(shù)據(jù)在宿主機(jī)與容器之間的遷移。數(shù)據(jù)卷的使用類似于Linux下對(duì)目錄進(jìn)行的mount操作。

1.創(chuàng)建數(shù)據(jù)卷

[root@localhost /]# docker run -d -v /data1 -v /data2 --name web httpd:centos
4944c63124d2f96bedd78b4016e6d96e464089626e97b913b06ec888e7ab8f65
[root@localhost /]# docker exec -it web /bin/bash \\進(jìn)入容器可以看到已經(jīng)和宿主機(jī)一樣了
[root@4944c63124d2 /]# ls
anaconda-post.log boot  data2 etc  lib  media opt  root run.sh srv tmp var
bin        data1 dev  home lib64 mnt  proc run  sbin  sys usr
[root@4944c63124d2 /]# 

(2)掛載主機(jī)目錄作為數(shù)據(jù)卷

例如

[root@localhost /]# docker run -d -v /var/www:/xws --name web-1 httpd:centos
05079057bf0c7c47b14fd457d1a5df0e29f080b6103753399654ef9d0aa4bf0f

中間:以前為宿主機(jī)的目錄,后面為容器里的目錄

[root@localhost /]# cd /var/www/
[root@localhost www]# touch asdasdasd
[root@localhost www]# ls
asdasdasd

進(jìn)入容器里看一下

[root@localhost /]# docker exec -it web-1 /bin/bash
[root@05079057bf0c /]# ls   
anaconda-post.log boot etc  lib  media opt  root run.sh srv tmp var
bin        dev  home lib64 mnt  proc run  sbin  sys usr xws
[root@05079057bf0c /]# cd xws
[root@05079057bf0c xws]# ls
asdasdasd

可以看到宿主機(jī)與容器共享

(2)數(shù)據(jù)卷容器

[root@localhost /]# docker run -it --volumes-from web --name 777 httpd:centos /bin/bash
[root@d6324596cb2c /]# cd data1
[root@d6324596cb2c data1]# touch file
[root@d6324596cb2c data1]# exit
exit
[root@localhost /]# docker exec -it web /bin/bash
[root@4944c63124d2 /]# ls
123        bin  data1 dev home lib64 mnt proc run   sbin sys usr
anaconda-post.log boot data2 etc lib  media opt root run.sh srv  tmp var
[root@4944c63124d2 /]# cd data1
[root@4944c63124d2 data1]# ls
file
[root@4944c63124d2 data1]# 

可以看到倆個(gè)容器共享

(3)Docker網(wǎng)絡(luò)通信

Docker提供了映射容器端口到宿主機(jī)和容器互聯(lián)機(jī)制來(lái)為容器提供網(wǎng)絡(luò)服務(wù)。
實(shí)現(xiàn)端口映射,需要在運(yùn)行docker run命令時(shí)使用-P (大寫)選項(xiàng)實(shí)現(xiàn)隨機(jī)映射,Docker 會(huì)隨機(jī)映射一個(gè)端口范圍在49000~ 49900的端口到容器內(nèi)部開(kāi)放的網(wǎng)絡(luò)端口,

1.端口映射

[root@localhost /]# docker run -d -P httpd:centos
70762709d90a8365803b8b13be02e06e2f9c0b4fdb8624bad01d579817809
[root@localhost /]# docker ps -a
CONTAINER ID    IMAGE             COMMAND         CREATED       STATUS           PORTS          NAMES
70762709d90a    httpd:centos         "/run.sh"        5 seconds ago    Up 4 seconds        0.0.0.0:**32768**->80/tcp  kickass_bhaskara

可以看到端口變?yōu)?2768

也可以指定端口

[root@localhost /]# docker run -d -p 123:80 httpd:centos
9c7b1b3989b30f44c22276a62674e565daf410e05bdf0b4892c09dca22662253

2.容器互聯(lián)

容器互聯(lián)是通過(guò)容器的名稱在容器間建立一條 專門的網(wǎng)絡(luò)通信隧道從而實(shí)現(xiàn)的互聯(lián)。簡(jiǎn)單點(diǎn)說(shuō),就是會(huì)在源容器和接收容器之間建立一條隧道,接收容器可以看到源容器指定的信息,在運(yùn)行docker run 命令時(shí)使用--link選項(xiàng)實(shí)現(xiàn)容器之間的互聯(lián)通信。
格式為:

--link name:alias \別名

創(chuàng)建源容器

[root@localhost /]# docker run -d -P --name web1 httpd:centos
0105f396c69b15557af4c15a62143872e725a28050075b554a4d2765a504d558

創(chuàng)建接收容器

使用docker run 命令建立容器B,-- -name指定名稱為web2. --link 指定連接容器以實(shí)現(xiàn)容器互聯(lián)。

[root@localhost /]# docker run -d -P --name web2 --link web1:web1 httpd:centos
10413ec7492d1d4bab724b4ecf2c2378dae6f496d14c2d68d27ee29b6a26bb1a

測(cè)試容器互聯(lián)

[root@localhost /]#** docker exec -it web2 /bin/bash**
[root@10413ec7492d /]# **ping web1**
PING web1 (172.17.0.8) 56(84) bytes of data.
64 bytes from web1 (172.17.0.8): icmp_seq=1 ttl=64 time=0.153 ms
64 bytes from web1 (172.17.0.8): icmp_seq=2 ttl=64 time=0.063 ms
64 bytes from web1 (172.17.0.8): icmp_seq=3 ttl=64 time=0.064 ms
64 bytes from web1 (172.17.0.8): icmp_seq=4 ttl=64 time=0.074 ms
64 bytes from web1 (172.17.0.8): icmp_seq=5 ttl=64 time=0.065 ms
64 bytes from web1 (172.17.0.8): icmp_seq=6 ttl=64 time=0.065 ms

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持本站。

香港服務(wù)器租用

版權(quán)聲明:本站文章來(lái)源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來(lái)源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來(lái)源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來(lái),僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。

相關(guān)文章

實(shí)時(shí)開(kāi)通

自選配置、實(shí)時(shí)開(kāi)通

免備案

全球線路精選!

全天候客戶服務(wù)

7x24全年不間斷在線

專屬顧問(wèn)服務(wù)

1對(duì)1客戶咨詢顧問(wèn)

在線
客服

在線客服:7*24小時(shí)在線

客服
熱線

400-630-3752
7*24小時(shí)客服服務(wù)熱線

關(guān)注
微信

關(guān)注官方微信
頂部