91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

配置docker靜態IP地址

發布時間:2020-05-25 15:49:31 來源:網絡 閱讀:4866 作者:學神MK講師 欄目:軟件技術

本節所講內容:

實驗環境: 一個還原到之前安裝了docker的虛擬機快照:

?

Docker的4種網絡模式

1、Docker有以下4種網絡模式:

host模式,使用--net=host指定。

container模式,使用--net=container:NAME_or_ID指定。

none模式,使用--net=none指定。

bridge模式,使用--net=bridge指定,默認設置。

默認選擇bridge的情況下,容器啟動后會通過DHCP獲取一個地址,這可能不是我們想要的,在centos7系統上, docker環境下可以使用pipework腳本對容器分配固定IP(這個IP可以是和物理機同網段IP)。

注: docker 默認是bridge(--net=bridge)模式,相當于VMware中NAT模式。

docker環境下可以使用pipework腳本對容器分配固定IP,相當于VMware中橋接模式。

注:Pipework有個缺陷,容器重啟后IP設置會自動消失,需要重新設置。

配置橋接網絡:

橋接本地物理網絡的目的,是為了局域網內用戶方便訪問docker實例中服務,不要需要各種端口映射即可訪問服務。 但是這樣做,又違背了docker容器的安全隔離的原則,工作中辯證的選擇.

創建橋設備:

安裝包:

[root@xuegod63 ~]# rpm -ivh /mnt/Packages/bridge-utils-1.5-9.el7.x86_64.rpm

把ens33綁到br0橋設備上:

[root@xuegod63 ~]# cd /etc/sysconfig/network-scripts/

[root@xuegod63 network-scripts]# cp ifcfg-ens33 /opt/ #備份一下eth0

[root@xuegod63 network-scripts]# vim ifcfg-ens33#編輯配置文件為以下內容

[root@xuegod63 network-scripts]# vim ifcfg-ens33

TYPE="Ethernet"

BOOTPROTO="none"

DEFROUTE="yes"

IPV4_FAILURE_FATAL="no"

IPV6INIT="yes"

IPV6_AUTOCONF="yes"

IPV6_DEFROUTE="yes"

IPV6_FAILURE_FATAL="no"

NAME="ens33"

UUID="7a556ff6-f865-4549-b08f-9e526c9bb638"

DEVICE="ens33"

ONBOOT="yes"

IPADDR="192.168.1.63" #刪除這些IP地址相關內容

PREFIX="24"

GATEWAY="192.168.1.1"

DNS1="8.8.8.8"

IPV6_PEERDNS="yes"

IPV6_PEERROUTES="yes"

IPV6_PRIVACY="no"

BRIDGE="br0" #在文件最后插入這一行

生成橋設備br0的配置文件:

[root@xuegod63 network-scripts]# vim ifcfg-br0 #創建ifcfg-br0 文件,并寫入以下內容

DEVICE="br0"

NM_CONTROLLED="yes"

ONBOOT="yes"

TYPE="Bridge"

BOOTPROTO=none

IPADDR=192.168.1.63

NETMASK=255.255.255.0

GATEWAY=192.168.1.1

DNS1=114.114.114.114

注:TYPE="Bridge"   B要大寫。 不大寫也可以。

[root@xuegod63 network-scripts]# service network restart

Restarting network (via systemctl): [ 確定 ]

測試br0:

root@xuegod63 network-scripts]# ifconfig

[root@xuegod63 network-scripts]# ping g.cn

PING g.cn (203.208.37.20) 56(84) bytes of data.

64 bytes from 203.208.37.20: icmp_seq=1 ttl=57 time=12.3 ms

下載pipework 包

方法1:直接下載pipework zip包

https://github.com/jpetazzo/pipework

把pipework-master.zip上傳到Linux中

擴展

方法2:使用git獲得:

git下載鏈接:https://github.com/jpetazzo/pipework

下載pipework工具:https://github.com/jpetazzo/pipework.git

[root@xuegod63 ~]# rpm -qf `which git`

git-1.8.3.1-5.el7.x86_64

[root@xuegod63 ~]# cd /opt/

[root@xuegod63 opt]# git clone https://github.com/jpetazzo/pipework.git

咱們使用方法1:

將 pipework-master.zip上傳xuegod63上:

[root@xuegod63 ~]# unzip pipework-master.zip # 不需要編譯,因為pipework 是一個shell腳本

查看:

[root@xuegod63 ~]# vim ./pipework-master/pipework

[root@xuegod63 ~]# cp /root/pipework-master/pipework /usr/local/bin/ #方便后期使用pipework命令

到此 pipework已經安裝成功。

啟動docker:

[root@xuegod63 ~]# systemctl start docker

把centos-lastest-docker-image.tar 鏡像上傳Linux上,并導入docker平臺

[root@xuegod63 ~]# docker load -i centos-lastest-docker-image.tar

使用靜態IP啟動一個docker實例

例:以none模式,使用--net=none 啟動一個容器,并且開啟docker特權模式。

[root@xuegod63 ~]# docker run -itd --net=none --privileged=true centos bash

e4698f625a56661edd2678269215ba42d4fa41c2da881768a741a72b4a3d0c60

擴展

--privileged=true? #允許開啟特權功能

privileged [?pr?v?l?d?d]

在docker 0.6版以后,privileged被引入docker。使用該參數,container內的root擁有真正的root權限。否則,container內的root只是外部物理機的一個普通用戶權限。
使用privileged啟動的容器,可以看到很多host上的設備,并且可以執行mount。甚至允許你在docker容器中啟動docker容器。不啟用privileged,容器中root用戶不能執行mount。

擴展: 測試privileged 特權功能 可以:1

1、未設置privileged啟動的容器:

[root@localhost ~]# docker run -it centos:latest bash

[root@65acccbba42f /]# ls /dev #可以看到的設備文件比較少

console fd full fuse kcore null ptmx pts random shm stderr stdin stdout tty urandom zero

[root@00931099722f /]# mount -o bind /etc /opt/

mount: permission denied

而在物理機是可以掛載成功的:

[root@xuegod63 ~]# mount -o bind /etc /opt/

[root@00931099722f /]# exit

2、使用privileged啟動的容器

[root@xuegod63 ~]# docker run -it --privileged centos:latest bash

[root@4a51d0fde3ce /]# ls /dev/ #可以看到很多設備文件

[root@4a51d0fde3ce /]# mount -o bind /etc /opt/ #可以掛載成功

[root@4a51d0fde3ce /]# mount /dev/sda1 /opt/ #可以掛載物理機上的sda1分區

[root@4a51d0fde3ce /]# ls /opt/

[root@4a51d0fde3ce /]# init 0 #不行,還是使用exit退出docker

Couldn't find an alternative telinit implementation to spawn.

[root@4a51d0fde3ce /]# exit

對開特權模式的docker實例有了解:1 沒有:2

直接吸收:80%的技術! 拿個本紙

擴展結束,接著給容器配置地址

[root@xuegod63 ~]# docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

e4698f625a56 centos "bash" 30 seconds ago Up 27 seconds suspicious_colden

可以看到容器啟動的ID ,比如是e4698f625a56

給此容器配置地址

pipework語法:pipework 網橋名 容器實例ID 分配給容器的IP/掩碼@網關

[root@xuegod63 ~]# pipework br0 c88c4c7f01f9 192.168.1.71/24@192.168.1.1

測試IP:

[root@xuegod63 ~]# ping 192.168.1.71 #可以看到docker實例的IP已經可以使用

PING 192.168.1.71 (192.168.1.71) 56(84) bytes of data.

64 bytes from 192.168.1.71: icmp_seq=1 ttl=64 time=0.639 ms

[root@xuegod63 ~]# docker inspect 容器實例ID #查看容器的詳細情況

進入容器,測試網絡:

[root@xuegod63 ~]# docker exec -it 87fadc0249a9 /bin/bash #進入容器

[root@6e38ee3f9672 /]# cat /etc/resolv.conf

# Generated by NetworkManager

search xuegod63.cn

nameserver 114.114.114.114

[root@e4698f625a56 /]# yum install -y net-tools #安裝ifconfig命令

[root@e4698f625a56 /]# ifconfig

eth2: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500

inet 192.168.1.71 netmask 255.255.255.0 broadcast 192.168.1.255

[root@e4698f625a56 /]# route -n

Kernel IP routing table

Destination Gateway Genmask Flags Metric Ref Use Iface

0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth2

192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth2

到此,docker實例配置靜態IP成功。

實戰1: 使用靜態IP啟動的docker實例運行,一個web服務器

[root@1e1db6c6c17c ~]# yum install httpd -y #安裝

[root@1e1db6c6c17c ~]# systemctl start httpd #這個方式,無法啟動

[root@1e1db6c6c17c ~]# httpd #直接運行 httpd命令

AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::a0be:f1ff:feeb:484. Set the 'ServerName' directive globally to suppress this message

[root@1e1db6c6c17c ~]# netstat -antup | grep 80 #發現80已經監聽

[root@1e1db6c6c17c ~]# cd /var/×××w/html/ #

[root@1e1db6c6c17c ~]# echo aaaaa > index.html

查看結果即可

總結:

1、創建一個br0橋接設備

2、下載pipework 包并安裝

3、安裝并運行docker

4、導入centos docker 鏡像

5、啟動一個docker實例 注意加參數: --net=none --privileged=true

6、使用pipework 給docker實例配置IP

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

灵台县| 济宁市| 环江| 仙居县| 曲阳县| 青海省| 靖边县| 临沂市| 郑州市| 锡林郭勒盟| 建昌县| 沧州市| 隆安县| 万全县| 博白县| 施秉县| 太仓市| 贺州市| 定边县| 漳浦县| 怀集县| 扶风县| 拜泉县| 保康县| 汉中市| 喜德县| 大方县| 石阡县| 普定县| 余干县| 金山区| 库尔勒市| 峨边| 洞口县| 库伦旗| 达孜县| 宣汉县| 博野县| 浦县| 中阳县| 孟村|