一、配置docker环境
写入模块
[root@docker ~]# cat << EOF | tee /etc/modules-load.d/k8s.conf
> overlay
> br_netfilter
> EOF
加载模块
#内核模块
[root@docker ~]# modprobe overlay
#桥接模块
[root@docker ~]# modprobe br_netfilter
#查看所添加的模块
[root@docker ~]# cat /etc/modules-load.d/k8s.conf
overlay
br_netfilter
写入模块
#cat命令用于输出重定向,tee命令用于同时在屏幕上显示输出内容和写入文件。
[root@docker ~]# cat << EOF | tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward = 1
EOF
重新加载
[root@docker ~]# sysctl --system
安装软件包
#安装yum-utils、device-mapper-persistent-data、lvm2(逻辑管理工具)
[root@docker ~]# yum -y install yum-utils device-mapper-persistent-data lvm2
#重置配置,添加新仓库------阿里云
[root@docker ~]# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#安装docker
[root@docker ~]# yum -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
#启动docker
[root@docker ~]# systemctl start docker.service
二、镜像基本操作
查看镜像
[root@docker ~]# docker images
搜索镜像
#查找tomcat镜像
[root@docker ~]# docker search tomcat
#查找nginx镜像
[root@docker ~]# docker search nginx
#查找官方镜像
[root@docker ~]# docker search centos
设置阿里云镜像加速器
#配置docker镜像站
[root@docker ~]# vim /etc/docker/daemon.json
{
"registry-mirrors": [
"https://do.nark.eu.org",
"https://dc.j8.work",
"https://docker.m.daocloud.io",
"https://dockerproxy.com",
"https://docker.mirrors.ustc.edu.cn",
"https://docker.nju.edu.cn"
]
}
#重启docker
[root@docker ~]# systemctl restart docker.service
下载镜像
#下载官方镜像
[root@docker ~]# docker pull centos
#查看镜像
[root@docker ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos latest 5d0da3dc9764 2 years ago 231MB
三、容器基本操作
启动容器
[root@docker ~]# docker run -i -t --name=c0 centos:latest /bin/bash
删除原有yum源
[root@5fa71e17b009 ~]# rm -rf /etc/yum.repos.d/*
下载阿里云镜像
[root@5fa71e17b009 ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 2495 100 2495 0 0 26827 0 --:--:-- --:--:-- --:--:-- 26827
清理缓存
[root@5fa71e17b009 ~]# yum clean all
创建缓存
[root@5fa71e17b009 ~]# yum makecache
安装软件包
#安装httpd包
[root@5fa71e17b009 ~]# yum -y install httpd
#安装iproute包
[root@5fa71e17b009 ~]# yum -y install iproute
#安装net-tools包
[root@5fa71e17b009 ~]# yum -y install net-tools
查看系统运行时间
[root@5fa71e17b009 ~]# uptime
06:35:26 up 3:56, 0 users, load average: 0.14, 0.05, 0.06
查看当前所在目录
[root@5fa71e17b009 ~]# pwd
/root
查看red-hat的版本信息
[root@5fa71e17b009 ~]# cat /etc/redhat-release
CentOS Linux release 8.4.2105
写入内容
[root@5fa71e17b009 ~]# echo "docker_httpd_server" > /var/www/html/index.html
#启动httpd
[root@5fa71e17b009 ~]# httpd -k start
访问测试
#自身访问
[root@5fa71e17b009 ~]# curl http://localhost:80
docker_httpd_server
#查看ip
[root@5fa71e17b009 ~]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.17.0.2 netmask 255.255.0.0 broadcast 172.17.255.255
#在宿主机上访问
[root@docker ~]# curl http://172.17.0.2:80
docker_httpd_server
查看进程
[root@docker ~]# ps -aux | grep docker
root 4733 0.0 5.9 1636248 58996 ? Ssl 14:16 0:01 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
root 4937 0.0 1.9 1518968 19716 pts/1 Sl+ 14:19 0:00 docker run -i -t --name=c0 centos:latest /bin/bash
root 5432 0.0 0.0 112720 984 pts/2 S+ 15:03 0:00 grep --color=auto docker
退出容器
[root@5fa71e17b009 ~]# exit
退出后进程已不存在,需要再次启动
#启动名为C0的容器
[root@docker ~]# docker start c0
#将c0的终端附加到当前终端
[root@docker ~]# docker attach c0
#启动httpd
[root@5fa71e17b009 /]# httpd -k start
#再次测试
#自身访问正常
[root@5fa71e17b009 /]# curl localhost
docker_httpd_server
#宿主机上访问正常
[root@docker ~]# curl http://172.17.0.2:80
docker_httpd_server
#按ctrl+先p后q,也可以退出回到宿主机
[root@5fa71e17b009 /]# read escape sequence
四、设置远程连接管理
查看状态
#查看sock套接字文件
[root@docker ~]# ls -lh /var/run/
srw-rw---- 1 root docker 0 8月 22 11:22 docker.sock
#查看端口是否开启
[root@docker ~]# netstat -lnput | grep 2375
注:要实现远程连接,必须有sock套接字文件、端口必须开启
停用docker
[root@docker ~]# systemctl stop docker
修改配置文件
#进入配置文件
[root@docker ~]# vim /usr/lib/systemd/system/docker.service
#修改json文件
[root@docker ~]# vim /etc/docker/daemon.json
加载文件
[root@docker ~]# systemctl daemon-reload
启动docker
[root@docker ~]# systemctl start docker
再次查看状态
#查看端口状态
[root@docker ~]# netstat -lnput | grep 2375
tcp6 0 0 :::2375 :::* LISTEN 6394/dockerd
#查看sock套接字文件
[root@docker ~]# ls -lh /var/run/
srw-rw---- 1 root docker 0 8月 22 16:10 docker.sock