最小化安装ifconfig命令无:(网络排查)
docker实战(一):centos7 yum安装docker
安装过程中可能会出现的问题:
1.正在处理依赖关系 docker-ce-selinux >= 17.03.0.ce-1.el7.centos,它被软件包 docker-ce-17.03.0.ce-1.el7.centos.x86_64 需要
软件包 docker-ce-selinux 已经被 docker-ce-cli 取代,但是取代的软件包并未满足需求”
等一大串的问题
这时我们需要通过 yum install 安装一个rpm包
通过这个地址我们查看和我们安装docker版本一直的rpm包
Index of linux/centos/7/x86_64/stable/Packages/
初装centos 7时,运行config报 command not found 错误
环境变量里没有ifconfig命令的路径,因为ifconfig是在/sbin路径下的,以root用户登录才可以运行
解决办法是:yum安装ifconfig这个命令包
yum search ifconfig
通过yum search 这个命令我们发现ifconfig这个命令是在net-tools.x86_64这个包里,接下来我们安装这个包就行了
yum install net-tools.x86_64
ifconfig 看到对应输出
ifconfig命令来源于net-tools,这个包里有ifconfig, netstat, whois等命令
- 查看磁盘空间相关命令
df -hl 查看磁盘的剩余空间
df --h 查看某个根路径的分区大小
du -sh [目录名] 返回该目录的大小
du -sm [文件夹] 返回该文件夹总M数
du -h [目录名] 查看指定文件夹下的所有文件大小(包含子文件夹)
查看硬盘的分区 #sudo fdisk -l
查看IDE硬盘信息 #sudo hdparm -i /dev/hda
查看STAT硬盘信息 #sudo hdparm -I /dev/sda 或 #sudo apt-get install blktool #sudo blktool /dev/sda id
查看硬盘剩余空间 #df -h #df -H
查看目录占用空间 #du -hs 目录名
优盘没法卸载 #sync fuser -km /media/usbdisk
- 磁盘空间不足排查(拍错:write error in swap file)
查看了一下磁盘空间,原因在于磁盘空间不够,于是执行命令:
df -h
查看该目录下的文件占用的磁盘空间,并排序
cd /
du -sh * | sort -n
====================================结果如下================================
1.4G tools
4.0K dump6379.rdb
4.0K dump6380.rdb
4.0K dump.rdb
4.0K server
8.7M run
16G usr ---- 这个目录下的文件占了16G
35M etc
36K zookeeper.out
92K home
96K data
100M boot
244K root
404K tmp
481M var
查看网卡的配置情况
vi /etc/sysconfig/network-scripts/ifcfg-eno16777728
TYPE="Ethernet"
BOOTPROTO="dhcp" # nat会自动根据宿主主机进行获取ip,更网关密切相关192.168.227.2
DEFROUTE="yes"
PEERDNS="yes"
PEERROUTES="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"
IPV6_FAILURE_FATAL="no"
NAME="eno16777728"
UUID="9d23808e-b03e-48cd-a6d1-67e7e2165971"
DEVICE="eno16777728"
ONBOOT="yes"
配置静态IP
TYPE="Ethernet"
BOOTPROTO="Static"
DEFROUTE="yes"
PEERDNS="yes"
PEERROUTES="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"
IPV6_FAILURE_FATAL="no"
NAME="eno16777728"
IPADDR=192.168.227.131
NETMASK=255.255.255.0
GATEWAY=192.168.227.2
DNS1=192.168.227.2 ----宿主虚拟机网关
UUID="e7b1f4e9-d4d5-4f63-a898-2f85f778c797"
DEVICE="eno16777728"
ONBOOT="yes"
配置dns
vi /etc/resolv.conf
search localdomain
nameserver 192.168.227.2 # 在虚拟机查找,该配置为虚拟机的网关
配置如下图:
systemctl status network 查看当前网卡状态(发现下面的错误信息)
network[25416]: Bringing up loopback interface: Could not load file '/etc/sysconfig/network-scripts/ifcfg-lo'
Nov 12 12:35:41 node-1 network[25416]: Could not load file '/etc/sysconfig/network-scripts/ifcfg-lo'
Nov 12 12:35:41 node-1 network[25416]: Could not load file '/etc/sysconfig/network-scripts/ifcfg-lo'
Nov 12 12:35:41 node-1 network[25416]: Could not load file '/etc/sysconfig/network-scripts/ifcfg-lo
解决方案:
发现无法加载/etc/sysconfig/network-scripts/ifcfg-lo文件
给NetworkManager-wait-online服务设置开机自启动
systemctl enable NetworkManager-wait-online.service
systemctl stop NetworkManager
systemctl disable NetworkManager
systemctl restart network
systemctl status network
网卡信息说明:
ifconfig
- eno16777728: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
2. inet 192.168.227.136 netmask 255.255.255.0 broadcast 192.168.227.255
3. inet6 fe80::20c:29ff:fed6:eb4d prefixlen 64 scopeid 0x20<link>
4. ether 00:0c:29:d6:eb:4d txqueuelen 1000 (Ethernet)
5. RX packets 120 bytes 11277 (11.0 KiB)
6. RX errors 0 dropped 0 overruns 0 frame 0
7. TX packets 77 bytes 12429 (12.1 KiB)
8. TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
- lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
10. inet 127.0.0.1 netmask 255.0.0.0
11. inet6 ::1 prefixlen 128 scopeid 0x10<host>
12. loop txqueuelen 0 (Local Loopback)
13. RX packets 0 bytes 0 (0.0 B)
14. RX errors 0 dropped 0 overruns 0 frame 0
15. TX packets 0 bytes 0 (0.0 B)
16. TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
eno16777728 是网卡接口,address是分配给指定该接口的主机名或者IP地址
Linux系统中的网卡Io为本地环回接口,IP地址固定为127.0.0.1,子网掩码8位,表示本机
ifconfig eno16777728
第1行: UP 表示此网络接口为启用状态,RUNNING表示网卡设备已连接,MULTICAST 表示支持组播,MTU为数据包最大传输单元
第2行:依次为网卡IP,子网掩码,广播地址
第3行: ipv6地址
第4行:Ethernet(以太网),表示连接类型,ether为网卡的MAC地址
第5行:接收数据包个数,大小统计信息
route -n 显示所有的路由表
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.227.2 0.0.0.0 UG 0 0 0 eno16777728
169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eno16777728
192.168.227.0 0.0.0.0 255.255.255.0 U 0 0 0 eno16777728
检查kernel版本,确定overlay的内核模块是否加载
[root@docker-02 ~]# uname -r
3.10.0-327.el7.x86_64
安装Docker 最新版本,执行下面的命令
==========================yum安装最新docker(一)==========================
[root@docker-02 ~]# yum install docker bridge-utils -y
启动docker
[root@docker-02 ~]# systemctl start docker
启动的过程发生了一点下错误
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
Active: failed (Result: exit-code) since 六 2020-04-25 18:51:13 CST; 30s ago
Docs: http://docs.docker.com
Main PID: 25435 (code=exited, status=1/FAILURE)
解决方案:
意思是此linux的内核中的SELinux不支持 overlay2 graph driver
重新编辑docker配置文件:
解决方案:
vi /etc/sysconfig/docker
OPTIONS='--selinux-enabled --log-driver=journald --signature-verification=false'
改为下面这一行
OPTIONS='--selinux-enabled=false --log-driver=journald --signature-verification=false'
设置开机启动
[root@docker-02 ~]# systemctl enable docker
查看当前 docker0 ip
[root@docker-02 ~]# ifconfig docker0
docker0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 172.17.0.1 netmask 255.255.0.0 broadcast 0.0.0.0
ether 02:42:4e:9b:b8:52 txqueuelen 0 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[root@docker-02 ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
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
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eno16777728: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:78:21:c4 brd ff:ff:ff:ff:ff:ff
inet 192.168.227.132/24 brd 192.168.227.255 scope global dynamic eno16777728
valid_lft 1541sec preferred_lft 1541sec
inet6 fe80::20c:29ff:fe78:21c4/64 scope link
valid_lft forever preferred_lft forever
3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN
link/ether 02:42:4e:9b:b8:52 brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 scope global docker0
valid_lft forever preferred_lft forever
拉取镜像
[root@docker-02 ~]# docker pull centos
Using default tag: latest
Trying to pull repository docker.io/library/centos ...
latest: Pulling from docker.io/library/centos
8a29a15cefae: Pull complete
Digest: sha256:fe8d824220415eed5477b63addf40fb06c3b049404242b31982106ac204f6700
Status: Downloaded newer image for docker.io/centos:latest
查看已经拉取到的镜像
[root@docker-02 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/centos latest 470671670cac 3 months ago 237 MB
运行镜像centos 并指定名称为my-test,后台运行
[root@docker-02 ~]# docker run -itd --name my-test centos /bin/bash
5c7b37d5c51f2d3133d47e3955834c4f84114589b3a22403b178c5cfb45bd731
查看当前正在运行的容器
[root@docker-02 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5c7b37d5c51f centos "/bin/bash" 28 seconds ago Up 27 seconds my-test
查看容器的默认分配的IP地址
[root@docker-02 ~]# docker inspect 5c7b37d5c51f |grep -i ipaddr
"SecondaryIPAddresses": null,
"IPAddress": "172.17.0.2",
"IPAddress": "172.17.0.2",
[root@docker-02 ~]# cat /proc/sys/net/ipv4/ip_forward
1
进入容器my-test
[root@docker-02 ~]# docker exec -it my-test /bin/bash
ping 外网是否通
[root@5c7b37d5c51f /]# ping www.baidu.com
PING www.a.shifen.com (220.181.38.149) 56(84) bytes of data.
64 bytes from www.baidu.com (220.181.38.149): icmp_seq=1 ttl=127 time=9.65 ms
64 bytes from www.baidu.com (220.181.38.149): icmp_seq=2 ttl=127 time=9.13 ms
64 bytes from www.baidu.com (220.181.38.149): icmp_seq=3 ttl=127 time=6.70 ms
64 bytes from www.baidu.com (220.181.38.149): icmp_seq=4 ttl=127 time=6.79 ms
64 bytes from www.baidu.com (220.181.38.149): icmp_seq=5 ttl=127 time=8.17 ms
到此docker拉取的镜像能够连接外网了