關(guān)于Docker
版本
Docker版本
Docker Community Edition(CE)-社區(qū)版
Docker Enterprise Edition(EE)-企業(yè)版
Docker Engine版本
Docker Engine Enterprise
Docker Engine Community驱闷。
平臺支持
桌面版
平臺 | x86_64 |
---|---|
Docker Desktop for Mac (macOS) | 是 |
Docker Desktop for Windows (Microsoft Windows 10) | 是 |
服務(wù)器版
Platform | x86_64 / amd64 | ARM | ARM64 / AARCH64 | IBM Power (ppc64le) | IBM Z (s390x) |
---|---|---|---|---|---|
CentOS | ? | ? | |||
Debian | ? | ? | ? | ||
Fedora | ? | ? | |||
Ubuntu | ? | ? | ? | ? | ? |
Docker Toolbox
docker在linux下直接安裝Docker Engine即可。但是在Windows匙姜、MacOS下需要用Docker Toolbox提供的Docker Machine創(chuàng)建虛擬機(boot2docker)框杜。
為Windows和MacOS提供的docker安裝器,包含以下工具:
- Docker Machine油狂,提供docker-machine命令
- Docker Engine蒸苇,提供docker命令
- Docker Compose庇勃,提供docker-compose命令
- Kitematic,Docker GUI
- Shell,提供Docker命令行環(huán)境的
- Oracle VirtualBox
Kitematic提供圖形界面聂受,方便容器的管理炮叶,使用教程
問題匯總
容器時區(qū)設(shè)置
在使用Docker Toolbox時旧困,用docker-machine創(chuàng)建的boot2docker虛擬機時區(qū)為UTC矩距,導(dǎo)致其中運行的容器時區(qū)與本地時區(qū)也不一致。
解決方案如下:
docker-compose模式
environment:
- TZ=Asia/Shanghai
docker run模式
docker run -e "TZ=Asia/Shanghai"
容器網(wǎng)絡(luò)設(shè)置
容器默認(rèn)是動態(tài)IP,有時我們需要靜態(tài)IP悼嫉。
docker-compose模式
指定子網(wǎng)網(wǎng)關(guān)、網(wǎng)段,及容器靜態(tài)IP迄汛。下例會自動創(chuàng)建名稱為
docker-hadoop_net
的網(wǎng)絡(luò)睹逃。
version: "2"
services:
namenode:
image: mysql
container_name: mymysql
environment:
- TZ=Asia/Shanghai
networks:
net:
ipv4_address: 172.18.100.101
networks:
net:
ipam:
config:
- subnet: 172.18.100.0/24
gateway: 172.18.100.1
docker run模式
docker run -e TZ="Asia/Shanghai" --privileged -itd -h hadoop01.com --name hadoop01 --network=mynet --ip 172.18.12.1 centos /usr/sbin/init
主機直連容器
MacOS
在Docker Desktop for Mac翼闹、Docker Machine環(huán)境中均不能ping通容器颠锉。按照網(wǎng)上的方法添加route瓷蛙,將容器ip路由到docker machine埋市,沒有響應(yīng)。
虛擬機(CentOS)
<font color='red'>T嵯睢5领汗贫!虛擬機添加Host-Only網(wǎng)卡,并將混雜模式設(shè)置為全部允許。</font>
1、安裝VirtualBox,添加CentOS7虛擬機,安裝Docker CE。
2、配置虛擬機網(wǎng)絡(luò)贸桶,與宿主機互通坠七。
3、管理-主機網(wǎng)絡(luò)管理器潘懊,添加虛擬網(wǎng)卡vboxnet0
vboxnet0在宿主機添加虛擬網(wǎng)卡肠槽,為虛擬機分配IP桩盲,宿主機與虛擬機在同一網(wǎng)段。
4、VirtualBox-偏好設(shè)置-網(wǎng)絡(luò)
NatNetwork為VirtualBox中安裝的虛擬機分配IP卦洽,與宿主機隔離蚤霞。
5昧绣、配置虛擬機網(wǎng)卡1(NAT網(wǎng)絡(luò))
6、配置虛擬機網(wǎng)卡2(僅主機網(wǎng)絡(luò))
<font color='red'>7⒕睢!翻擒!混雜模式設(shè)置為全部允許</font>
7、宿主機添加路由表
在虛擬機中查看docker容器IP洽糟,步驟如下:
# 查看network
~ docker network ls
NETWORK ID NAME DRIVER SCOPE
8c4e3d387a7a bridge bridge local
# 查看network網(wǎng)段和容器ip
~ docker inspect 8c4e3d387a7a
[
{
"Name": "bridge",
"Id": "8c4e3d387a7a5c",
"IPAM": {
"Driver": "default",
"Options": null,
"Config": [
{
"Subnet": "172.17.0.0/16",
"Gateway": "172.17.0.1"
}
]
},
"Containers": {
"46cba393befd1f6": {
"Name": "registry",
"EndpointID": "3530fa3f129c7b6",
"MacAddress": "02:42:ac:11:00:02",
"IPv4Address": "172.17.0.2/16",
"IPv6Address": ""
}
}
}
]
# 例如:network網(wǎng)段為172.17.0.0/16烂完,虛擬機IP為192.168.56.102
~ route -n add 172.17.0.0/16 192.168.56.102
8朋鞍、至此大功告成
看疮绷,ping成功了
~ ping 172.17.0.2
PING 172.17.0.2 (172.17.0.2): 56 data bytes
64 bytes from 172.17.0.2: icmp_seq=0 ttl=63 time=0.365 ms
64 bytes from 172.17.0.2: icmp_seq=1 ttl=63 time=0.428 ms
64 bytes from 172.17.0.2: icmp_seq=2 ttl=63 time=0.392 ms