Docker配置calico網路
Calico網路簡介
Calico為容器和虛擬機器工作負載提供安全的網路連線。
Calico建立並管理平面第3層網路,為每個工作負載分配完全可路由的IP地址。工作負載可以在沒有IP封裝或網路地址轉換的情況下進行通訊,以實現裸機效能,簡化故障排除和更好的互操作性。在需要overlay的環境中,Calico使用IP-in-IP隧道技術,或者可以與flannel等其他覆蓋網路配合使用。
Calico還提供網路安全規則的動態實施。使用Calico的簡單策略語言,您可以實現對容器,虛擬機器工作負載和裸機主機端點之間通訊的細粒度控制。
Calico在大規模生產方面經過驗證,可與Kubernetes,OpenShift,Docker,Mesos,DC / OS和OpenStack整合。
實驗環境描述
Calico 依賴 etcd 在不同主機間共享和交換資訊,儲存 Calico 網路狀態。我們將在 host 192.168.92.56上執行 etcd。
Calico 網路中的每個主機都需要執行 Calico 元件,提供容器 interface 管理、動態路由、動態 ACL、報告狀態等功能。
實驗環境如下圖所示:
主機節點:
192.168.92.56 etcd 安裝docker+etcd
192.168.92.57 host1 安裝docker+ calicoctl
192.168.92.58 host2 安裝docker+ calicoctl
軟體版本:
calicoctl(version v1.6.5) etcdctl(version: 3.2.22) docker(version:18.09.0-ce)
修改三個節點的主機名
[[email protected] ~]# hostnamectl --static set-hostname etcd
[[email protected] ~]# hostnamectl --static set-hostname host1
[[email protected] ~]# hostnamectl --static set-hostname host2
在三臺主機上都要設定hosts:
[[email protected] ~]# vim /etc/hosts 192.168.92.56 etcd 192.168.92.57 host1 192.168.92.58 host2
關閉三臺主機的防火牆
若開啟iptables防火牆,則需要開啟2380埠通訊。
[[email protected] ~]# systemctl disable firewalld.service
[[email protected] ~]# systemctl stop firewalld.service
[[email protected] ~]# iptables -F
[[email protected] ~]# firewall-cmd --state
not running
安裝etcd
在etcd主機上安裝etcd
[[email protected] ~]# yum install -y etcd
修改etcd配置檔案:
[[email protected] ~]# vim /etc/etcd/etcd.conf
#[Member]
#ETCD_CORS=""
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
#ETCD_WAL_DIR=""
#ETCD_LISTEN_PEER_URLS="http://localhost:2380"
ETCD_LISTEN_CLIENT_URLS="http://192.168.92.56:2379"
......
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.92.56:2379"
......
啟動etcd服務
[[email protected] ~]# systemctl start etcd && systemctl enable etcd
檢視版本
[[email protected] ~]# etcdctl -version
etcdctl version: 3.2.22
API version: 2
[[email protected] ~]#
修改docker配置檔案連線etcd
修改 host1 和 host2 的 Docker daemon 配置檔案
連線 etcd:–cluster-store=etcd://192.168.92.56:2379
[[email protected] ~]# vim /etc/docker/daemon.json
{
"registry-mirrors": ["http://f1361db2.m.daocloud.io"],
"cluster-store": "etcd://192.168.92.56:2379"
}
說明:第一行的registry-mirrors是配置docker映象加速以後自動新增的。
重啟 Docker daemon
systemctl daemon-reload && systemctl restart docker.service
檢視配置是否正確
[[email protected] ~]# docker info | grep "Cluster Store"
Cluster Store: etcd://192.168.92.56:2379
[[email protected] ~]#
部署calicoctl
官方參考文件:https://docs.projectcalico.org/v2.6/getting-started/docker/installation/manual
在host1和host2上下載calicoctl並執行calico容器。
下載calicoctl
[[email protected] ~]# wget -O /usr/local/bin/calicoctl https://github.com/projectcalico/calicoctl/releases/download/v1.6.5/calicoctl
[[email protected] ~]# chmod +x /usr/local/bin/calicoctl
[[email protected] ~]# /usr/local/bin/calicoctl --version
calicoctl version v1.6.5, build 614fcf12
建立calico容器
首先建立calico配置檔案
[[email protected] ~]# mkdir /etc/calico/
[[email protected] ~]# vim /etc/calico/calicoctl.cfg
apiVersion: v1
kind: calicoApiConfig
metadata:
spec:
datastoreType: "etcdv2"
etcdEndpoints: "http://192.168.92.56:2379"
分別在兩個節點上建立calico容器,執行後會自動下載calico映象並執行容器,下載映象可能較慢,建議配置映象加速,啟動過程如下:
[[email protected] ~]# calicoctl node run --node-image=quay.io/calico/node:v2.6.12 -c /etc/calico/calicoctl.cfg
Running command to load modules: modprobe -a xt_set ip6_tables
Enabling IPv4 forwarding
Enabling IPv6 forwarding
Increasing conntrack limit
Removing old calico-node container (if running).
Running the following command to start calico-node:
docker run --net=host --privileged --name=calico-node -d --restart=always -e NODENAME=host1 -e CALICO_NETWORKING_BACKEND=bird -e CALICO_LIBNETWORK_ENABLED=true -e ETCD_ENDPOINTS=http://192.168.92.56:2379 -v /var/log/calico:/var/log/calico -v /var/run/calico:/var/run/calico -v /lib/modules:/lib/modules -v /run:/run -v /run/docker/plugins:/run/docker/plugins -v /var/run/docker.sock:/var/run/docker.sock quay.io/calico/node:v2.6.12
Image may take a short time to download if it is not available locally.
Container started, checking progress logs.
2018-11-20 09:38:51.800 [INFO][8] startup.go 173: Early log level set to info
2018-11-20 09:38:51.801 [INFO][8] client.go 202: Loading config from environment
2018-11-20 09:38:51.801 [INFO][8] startup.go 83: Skipping datastore connection test
2018-11-20 09:38:51.811 [INFO][8] startup.go 259: Building new node resource Name="host1"
2018-11-20 09:38:51.811 [INFO][8] startup.go 273: Initialise BGP data
2018-11-20 09:38:51.812 [INFO][8] startup.go 467: Using autodetected IPv4 address on interface ens33: 192.168.92.57/24
2018-11-20 09:38:51.812 [INFO][8] startup.go 338: Node IPv4 changed, will check for conflicts
2018-11-20 09:38:51.814 [INFO][8] etcd.go 430: Error enumerating host directories error=100: Key not found (/calico) [11]
2018-11-20 09:38:51.814 [INFO][8] startup.go 530: No AS number configured on node resource, using global value
2018-11-20 09:38:51.816 [INFO][8] etcd.go 105: Ready flag is now set
2018-11-20 09:38:51.817 [INFO][8] client.go 133: Assigned cluster GUID ClusterGUID="6608d7fcd5934b86af326f9570763e05"
2018-11-20 09:38:51.832 [INFO][8] startup.go 419: CALICO_IPV4POOL_NAT_OUTGOING is true (defaulted) through environment variable
2018-11-20 09:38:51.832 [INFO][8] startup.go 659: Ensure default IPv4 pool is created. IPIP mode: off
2018-11-20 09:38:51.834 [INFO][8] startup.go 670: Created default IPv4 pool (192.168.0.0/16) with NAT outgoing true. IPIP mode: off
2018-11-20 09:38:51.835 [INFO][8] startup.go 419: FELIX_IPV6SUPPORT is true (defaulted) through environment variable
2018-11-20 09:38:51.835 [INFO][8] startup.go 626: IPv6 supported on this platform: true
2018-11-20 09:38:51.835 [INFO][8] startup.go 419: CALICO_IPV6POOL_NAT_OUTGOING is false (defaulted) through environment variable
2018-11-20 09:38:51.835 [INFO][8] startup.go 659: Ensure default IPv6 pool is created. IPIP mode: off
2018-11-20 09:38:51.837 [INFO][8] startup.go 670: Created default IPv6 pool (fd80:24e2:f998:72d6::/64) with NAT outgoing false. IPIP mode: off
2018-11-20 09:38:51.886 [INFO][8] startup.go 131: Using node name: host1
2018-11-20 09:38:51.967 [INFO][13] client.go 202: Loading config from environment
Starting libnetwork service
Calico node started successfully
[[email protected] ~]#
1.設定主機網路,例如 enable IP forwarding。
2.下載並啟動 calico-node 容器,calico 會以容器的形式執行(與 weave 類似)。
[[email protected] ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
quay.io/calico/node v2.6.12 401cc3e56a1a 10 days ago 281MB
[[email protected]ost1 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5903e0254caf quay.io/calico/node:v2.6.12 "start_runit" 18 minutes ago Up 18 minutes calico-node
[[email protected] ~]#
3.連線 etcd。
4.calico 啟動成功。
檢視calico執行狀態
[[email protected] ~]# calicoctl node status
Calico process is running.
IPv4 BGP status
+---------------+-------------------+-------+----------+-------------+
| PEER ADDRESS | PEER TYPE | STATE | SINCE | INFO |
+---------------+-------------------+-------+----------+-------------+
| 192.168.92.58 | node-to-node mesh | up | 09:42:58 | Established |
+---------------+-------------------+-------+----------+-------------+
IPv6 BGP status
No IPv6 peers found.
[[email protected] ~]#
[[email protected] ~]# calicoctl node status
Calico process is running.
IPv4 BGP status
+---------------+-------------------+-------+----------+-------------+
| PEER ADDRESS | PEER TYPE | STATE | SINCE | INFO |
+---------------+-------------------+-------+----------+-------------+
| 192.168.92.57 | node-to-node mesh | up | 09:42:58 | Established |
+---------------+-------------------+-------+----------+-------------+
IPv6 BGP status
No IPv6 peers found.
[[email protected] ~]#
建立 calico 網路
在 host1 或 host2 上執行如下命令建立 calico 網路 cal_ent1:
# docker network create --driver calico --ipam-driver calico-ipam cal_net1
- –driver calico 指定使用 calico 的 libnetwork CNM driver。
- –ipam-driver calico-ipam 指定使用 calico 的 IPAM driver 管理 IP。
calico 為 global 網路,etcd 會將 cal_net 同步到所有主機。
[[email protected] ~]# docker network ls
NETWORK ID NAME DRIVER SCOPE
13688a2fa1f6 bridge bridge local
4a036a209f73 cal_net1 calico global
634261a87b28 host host local
83b3249a9250 none null local
[[email protected] ~]#
Calico網路結構
在 host1 中執行容器 bbox1 並連線到 cal_net1:
# docker container run --net cal_net1 --name bbox1 -tid busybox
檢視 bbox1 的網路配置。
[root@host1 ~]# docker exec bbox1 ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
5: cali0@if6: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue
link/ether ee:ee:ee:ee:ee:ee brd ff:ff:ff:ff:ff:ff
inet 192.168.119.0/32 brd 192.168.119.0 scope global cali0
valid_lft forever preferred_lft forever
[root@host1 ~]#
cali0 是 calico interface,分配的 IP 為 192.168.119.0。cali0 對應 host1 編號6 的 interface caliea27309bc46。
[root@host1 ~]# ip a
......
6: caliea27309bc46@if5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
link/ether ba:9a:72:6c:61:12 brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet6 fe80::b89a:72ff:fe6c:6112/64 scope link
valid_lft forever preferred_lft forever
[root@host1 ~]#
host1 將作為 router 負責轉發目的地址為 bbox1 的資料包。
[root@host1 ~]# ip route
default via 192.168.92.2 dev ens33 proto static metric 100
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown
192.168.92.0/24 dev ens33 proto kernel scope link src 192.168.92.57 metric 100
192.168.119.0 dev caliea27309bc46 scope link
blackhole 192.168.119.0/26 proto bird
所有傳送到 bbox1 的資料都會發給caliea27309bc46,因為caliea27309bc46 與 cali0 是一對 veth pair,bbox1 能夠接收到資料。
接下來我們在 host2 中執行容器 bbox2,也連線到 cal_net1:
# docker container run --net cal_net1 --name bbox2 -tid busybox
IP 為 192.168.183.64。
[root@host2 ~]# docker exec bbox2 ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
5: cali0@if6: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue
link/ether ee:ee:ee:ee:ee:ee brd ff:ff:ff:ff:ff:ff
inet 192.168.183.64/32 brd 192.168.183.64 scope global cali0
valid_lft forever preferred_lft forever
[root@host2 ~]#
host2 添加了兩條路由:
[root@host2 ~]# ip route
default via 192.168.92.2 dev ens33 proto static metric 100
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown
192.168.92.0/24 dev ens33 proto kernel scope link src 192.168.92.58 metric 100
192.168.119.0/26 via 192.168.92.57 dev ens33 proto bird
192.168.183.64 dev cali16a5ce997f9 scope link
blackhole 192.168.183.64/26 proto bird
[root@host2 ~]#
- 目的地址為 host1 容器 subnet 192.168.119.0/26 的路由。
- 目的地址為本地 bbox2 容器 192.168.183.65 的路由。
同樣的,host1 也自動添加了到 192.168.183.64/26 的路由。
[root@host1 ~]# ip route
default via 192.168.92.2 dev ens33 proto static metric 100
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown
192.168.92.0/24 dev ens33 proto kernel scope link src 192.168.92.57 metric 100
192.168.119.0 dev caliea27309bc46 scope link
blackhole 192.168.119.0/26 proto bird
192.168.183.64/26 via 192.168.92.58 dev ens33 proto bird
[root@host1 ~]#
Calico 的預設連通性
測試一下 bbox1 與 bbox2 的連通性:
[root@host1 ~]# docker exec bbox1 ping -c 2 bbox2
PING bbox2 (192.168.183.64): 56 data bytes
64 bytes from 192.168.183.64: seq=0 ttl=62 time=0.654 ms
64 bytes from 192.168.183.64: seq=1 ttl=62 time=1.282 ms
ping 成功,資料包流向如下圖所示。
① 根據 bbox1 的路由表,將資料包從 cal0 發出。
[root@host1 ~]# docker exec bbox1 ip route
default via 169.254.1.1 dev cali0
169.254.1.1 dev cali0 scope link
[root@host1 ~]#
② 資料經過 veth pair 到達 host1,檢視路由表,資料由 ens33發給 host2(192.168.92.58)。
192.168.183.64/26 via 192.168.92.58 dev ens33 proto bird
③ host2 收到資料包,根據路由表傳送給 calic8bf9e68397,進而通過 veth pair cali0 到達 bbox2。
192.168.183.64 dev cali16a5ce997f9 scope link
接下來我們看看不同 calico 網路之間的連通性。
建立 cal_net2。
docker network create --driver calico --ipam-driver calico-ipam cal_net2
在 host1 中執行容器 bbox3,連線到 cal_net2:
docker container run --net cal_net2 --name bbox3 -tid busybox
calico 為 bbox3 分配了 IP 192.168.119.1。
[root@host1 ~]# docker exec bbox3 ip address show cali0
7: cali0@if8: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue
link/ether ee:ee:ee:ee:ee:ee brd ff:ff:ff:ff:ff:ff
inet 192.168.119.1/32 brd 192.168.119.1 scope global cali0
valid_lft forever preferred_lft forever
[root@host1 ~]#
驗證 bbox1 與 bbox3 的連通性。
[root@host1 ~]# docker exec bbox1 ping -c 2 bbox3
ping: bad address 'bbox3'
[root@host1 ~]#
雖然 bbox1 和 bbox3 都位於 host1,而且都在一個 subnet 192.168.119.0/26,但它們屬於不同的 calico 網路,預設不能通行。
calico 預設的 policy 規則是:容器只能與同一個 calico 網路中的容器通訊。
calico 的每個網路都有一個同名的 profile,profile 中定義了該網路的 policy。我們具體看一下 cal_net1 的 profile:
[[email protected] ~]# calicoctl get profile cal_net1 -o yaml
- apiVersion: v1
kind: profile
metadata:
name: cal_net1
tags:
- cal_net1
spec:
egress:
- action: allow
destination: {}
source: {}
ingress:
- action: allow
destination: {}
source:
tag: cal_net1
[[email protected] ~]#
① 命名為 cal_net1,這就是 calico 網路 cal_net1 的 profile。
② 為 profile 新增一個 tag cal_net1。注意,這個 tag 雖然也叫 cal_net1,其實可以隨便設定,這跟上面的 name: cal_net1 沒有任何關係。此 tag 後面會用到。
③ egress 對從容器發出的資料包進行控制,當前沒有任何限制。
④ ingress 對進入容器的資料包進行限制,當前設定是接收來自 tag cal_net1 的容器,根據第 ① 步設定我們知道,實際上就是隻接收本網路的資料包,這也進一步解釋了前面的實驗結果。
既然這是預設 policy,那就有方法定製 policy,這也是 calico 較其他網路方案最大的特性。下一節就我們討論如何定製 calico policy。
定製 Calico 網路 Policy
Calico 預設的 policy 規則是:容器只能與同一個 calico 網路中的容器通訊。calico 能夠讓使用者定義靈活的 policy 規則,精細化控制進出容器的流量,下面我們就來實踐一個場景:
建立一個新的 calico 網路 cal_web 並部署一個 httpd 容器 web1。
定義 policy 允許 cal_net2 中的容器訪問 web1 的 80 埠。
首先建立 cal_web。
# docker network create --driver calico --ipam-driver calico-ipam cal_web
在 host1 中執行容器 web1,連線到 cal_web:
docker container run --net cal_web --name web1 -d httpd
[root@host1 ~]# docker exec -it web1 bash
root@98c33620a550:/usr/local/apache2#
root@98c33620a550:/usr/local/apache2# apt-get update
root@98c33620a550:/usr/local/apache2# apt-get install iproute
root@98c33620a550:/usr/local/apache2#
root@98c33620a550:/usr/local/apache2# exit
exit
[root@host1 ~]#
web1 的 IP 為 192.168.119.2
[root@host1 ~]# docker container exec web1 ip address show cali0
9: cali0@if10: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
link/ether ee:ee:ee:ee:ee:ee brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet 192.168.119.2/32 brd 192.168.119.2 scope global cali0
valid_lft forever preferred_lft forever
[root@host1 ~]#
目前 bbox3 還無法訪問 web1 的 80 埠。
[root@host1 ~]# docker container exec bbox3 wget 192.168.119.2
Connecting to 192.168.119.2 (192.168.119.2:80)
wget: can't connect to remote host (192.168.119.2): Connection timed out
[root@host1 ~]#
建立 policy 檔案 web.yml,內容為:
[[email protected] ~]# vim web.yml
- apiVersion: v1
kind: profile
metadata:
name: cal_web
spec:
ingress:
- action: allow
protocol: tcp
source:
tag: cal_net2
destination:
ports:
- 80
① profile 與 cal_web 網路同名,cal_web 的所有容器(web1)都會應用此 profile 中的 policy。
② ingress 允許 cal_net2 中的容器(bbox3)訪問。
③ 只開放 80 埠。
應用該 policy。
# calicoctl apply -f web.yml
現在 bbox3 已經能夠訪問 web1 的 http 服務了。
[root@host1 ~]# docker container exec bbox3 wget 192.168.119.2
Connecting to 192.168.119.2 (192.168.119.2:80)
index.html 100% |********************************| 45 0:00:00 ETA
[root@host1 ~]#
不過 ping 還是不行,因為只放開了 80 埠。
[root@host1 ~]# docker container exec bbox3 ping -c 2 192.168.119.2
PING 192.168.119.2 (192.168.119.2): 56 data bytes
--- 192.168.119.2 ping statistics ---
2 packets transmitted, 0 packets received, 100% packet loss
[root@host1 ~]#
上面這個例子比較簡單,不過已經向我們展示了 calico 強大的 policy 功能。通過 policy,可以動態實現非常複雜的容器訪問控制。有關 calico policy 更多的配置,可參看官網文件
Calico網路簡介
Calico為容器和虛擬機器工作負載提供安全的網路連線。 Calico建立並管理平面第3層網路,為每個工作負載分配完全可路由的IP地址。工作負載可以在沒有IP封裝或網路地址轉換的情況下進行通訊,以實現裸機效能,簡化故障排除和更好的互操作性。在需要overlay的環境 建立一個docker容器,docker系統會自動為該容器分配一個ip地址,通常是172.17開頭。
我們可以在主機上用 docker inspect 命令 或者進入容器用ifconfig命令來檢視容器的ip地址。
假設某個容器(假設容器的名稱為myweb)被分配的地址是 172.17.0.2,該容器上啟動
原文地址
這部分教程中,獨立容器直接連線到 Docker 主機的網路,沒有網路隔離。
1. 目標
這個教程的目的是啟動一個直接繫結到 Docker 主機的 80 埠的 Nginx 容器。從網路角度來看,這跟 Nginx 程序直接執行在 Docker 主機上
第二部分: 使用pipework為容器配置宿主機物理網路的地址1. 安裝pipeworkyum install git -ycd pipeworkcp pipework /usr/bin/2.pipework介紹pipework是一個軟體定義網路的工具,用來在任何複雜的場景
為了使本地網路中的機器和Docker容器更方便的通訊,我們經常會有將Docker容器配置到和主機同一網段的需求。這個需求其實很容易實現,我們只要將Docker容器和宿主機的網絡卡橋接起來,再給Docker容器配上IP就可以了。
Centos 6按照下面的方法操
原文地址
就網路而言,橋接網路(bridge network,也叫網橋)是一種鏈路層裝置,用於轉發網段之間的流量。 bridge 可以是硬體裝置或在主機核心中執行的軟體裝置。
對 Docker 而言,橋接網路使用允許容器連線到同一個橋接網路來通訊的軟體網橋, erl cgroup daemon dock 訪問 pro network driver emd 系統: centos 7
Docker version 1.12.6
yum 安裝的 #yum install docker
docker server在192.168. dockercat /etc/sysconfig/dockerother_args=‘-g /rc/local/docker‘OPTIONS=‘--selinux-enabled --log-driver=journald -g /rc/docker‘INSECURE_REGISTRY=‘--insecure docker storage driver1、查看overlay模塊是否安裝lsmod | grep over2、將OverlayFS加到module目錄下echo "overlay" > /etc/modules-load.d/overlay.conf3、或者使用modprobe命令加載模塊#modp lib curl ubuntu aot class cal 到你 res log https://www.daocloud.io/mirror#accelerator-doc
curl -sSL https://get.daocloud.io/daotools/set_m http docker proxy Custom(定制) Docker daemon optionsThere are a number of ways to configure the daemon flags and environment variables for your Docker log dns 配置 conf -h rip dock 主機 主機名 earch
Docker 沒有為每個容器專門定制鏡像,那麽怎麽自定義配置容器的主機名和 DNS 配置呢? 秘訣就是它利用虛擬文件來掛載到來容器的 3 個相關配置文件。
在容器中使用 mount 命令可 sta 網絡 class pan 修改 post RR tps gist 國內網絡訪問國外官方鏡像不僅網速慢,而且經常遭遇斷網,對此我們可以配置國內鏡像來解決這個問題。
在國內,可以通過registry.docker-cn.com訪問官方鏡像庫。
配置方法
修改 /e file corn 完成 項目 Beginner 一起 管理 add 文件 在配置這個服務之前,應該對docker的基本安裝與使用應該很熟悉了。下面開始直接不如正題
1.讓我們創建一個名為myproject的空目錄,並在src名稱內添加另一個文件夾。src應該包含djang col style docker 信息 alt 分享圖片 -i extra pro 1.docker-machine ssh default(有時可省略)
2.sudo sed -i "s|EXTRA_ARGS=‘|EXTRA_ARGS=‘--registry-mirror 管理 route add 物理機 6.0 16px 軟連接 ron pre set
容器網絡訪問原理? 橋接宿主機網絡
臨時生效:
# 網橋名稱
br_name=br0
# 添加網橋
brctl addbr $br_name
# rest 不可 方法 -s 信息 secure lin dockerd plugin Docker參考手冊: https://docs.docker.com/engine/reference/commandline/dockerd/配置docker守護進程的屬 配置文件 reat grep emc tag roo lib ons 服務 默認情況下Docker的存放位置為:/var/lib/docker 可以通過下面命令查看具體位置:
sudo docker info | grep "Docker Root Dir"
指定鏡像和容器 版權宣告:本文為博主原創文章,轉載註明出處即可。 https://blog.csdn.net/bskfnvjtlyzmv867/article/details/81017226
序
閱讀本篇文章可以幫你解決的問題是:提供一套解決方案,能夠在支援Docker的任何版本Ubuntu系統下,搭建出完美執行各種深 首先需要從docker上拉取mysql映象
一:拉取命令操作[[email protected] my.Shells]# docker pull mysqlUsing default tag: latestTrying to pull repository docker.io/library/my 相關推薦
Docker配置calico網路
docker 容器間網路配置
Docker 配置網路教程
docker+pipework配置容器網路(二)
Docker配置橋接網路
Docker 配置網路
docker 配置遠程訪問
docker 配置
docker配置overlay存儲
Docker - 配置加速器
docker配置反向代理
Docker配置 DNS
docker配置國內官方鏡像
Djano + Nginx + docker配置與管理
win7下docker配置加速器
docker-配置網橋-自定義網絡
Docker配置參數列表
Docker配置本地鏡像與容器的存儲位置
docker配置深度學習環境
Docker配置mysql