发布时间:2025-03-09 人气:53次
1.什么 docker?
docker就是一个软件,支持在win、mac、linux系统上进行安装。
可以帮助我们在一台电脑上创建出多个隔离的环境,比传统的虚拟机极大的节省资源 。
为什么要创建隔离的环境?
假设你先在有一个centos7.6系统运行程序,而这个程序需要依赖【ubuntu系统的服务A】 + 【centos7.9的服务B】- 传统的方式:买新服务器- 虚拟化方式:在原来的NB服务器上利用虚拟化技术创建虚拟机(vmware、kvm等),用虚拟机做隔离去跑新的业务。- docker的方式:利用docker软件创建一个新的容器,用容器去做隔离区跑新的业务。
为什么docker可以比虚拟机极大的节省资源?
- 虚拟机的方式,是在电脑完整的创建一个操作系统。- docker的方式,创建的容器不是完整的操作系统,而是充分利用宿主机内核+进程,只是创建了一些必备的资源。
2.必备概念
DockerHub,远程镜像仓库。
仓库中有官方的一些镜像文件,也有开发者自定义的镜像文件。
Images,本地镜像仓库。
可以去远程仓库下载镜像到本地仓库,后续再根据镜像为“模版”去创建容器。本地的镜像也可以发布到远程镜像库。
镜像是之前用虚拟机创建操作系统时的ISO文件吗?
不是,此处是docker中的特殊的文件。
镜像是个什么样的文件?
镜像就是充当模版来使用,在他得内部包含打包好了的:运行所需依赖 + 业务代码。后期基于镜像一键创建出的容器也就会自动包含依赖和业务代码,直接就可以运行了,不需要再安装+拷贝代码了。
Containers,容器。
容器就是根据镜像创造出来的一个个隔离的环境。
3.环境准备
学习环境:win电脑 -> centos7虚拟机【docker】 -> docker容器
线上环境:云平台 -> 购买云主机【docker】 -> docker容器
例:在win电脑安装:vmware工具 + 创建centos系统(初始化)
4.VMware
4.1 下载安装
下载后,无脑点击安装即可。
4.2 虚拟化支持
注意:开启后重启即可,如果电脑提示无法启动,则需要先进入bios在主板中设置开启支持Hyper-V。
5.网络配置
默认登录无法上网,需要配置下网络才行。
5.1 Win电脑
配置DNS和网关
5.2 CentOS主机
TYPE=EthernetPROXY_METHOD=noneBROWSER_ONLY=noBOOTPROTO=static # 由原来的dhcp改成staticDEFROUTE=yesIPV4_FAILURE_FATAL=noIPV6INIT=yesIPV6_AUTOCONF=yesIPV6_DEFROUTE=yesIPV6_FAILURE_FATAL=noIPV6_ADDR_GEN_MODE=stable-privacyNAME=ens33UUID=cfbd5cd7-fa17-48e6-9d13-715f33e1f08dDEVICE=ens33ONBOOT=yes # 由原来的no改成yesIPADDR=192.168.145.129 # 新增,当前主机的IPGATEWAY=192.168.145.2 # 网关NETMASK=255.255.255.0 # 掩码DNS1=8.8.8.8 # NDS服务器DNS2=114.114.114.114 # NDS服务器
service network restart
systemctl restart network
重启后,可以ping百度测试:
ping baidu.com
7.系统初始化
6.1 关闭selinux
查看状态
getenforce
临时关闭
setenforce 0
永久关闭
vi /etc/selinux/config
# 设置为disabledSELINUX=disabled
6.2 防火墙
查看防火墙状态
systemctl status firewalld
关闭
systemctl stop firewalld
关闭开机启动防火墙
systemctl disable firewalld
net-tools
yum install net-tools -y
openssh-server
yum install openssh-server -y
systemctl start sshd.service
systemctl enable sshd.service
6.3换阿里源
- wget 用yum安装不了建议将 - wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo - 替换成 - curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget
yum install wget -y
centos常用工具包
yum install -y wget bash-completion vim lrzsz wget expect net-tools nc nmap tree dos2unix htop iftop iotop unzip telnet sl psmisc nethogs glances bc ntpdate openldap-devel
6.4 xshell软件
可以在win上用xshell等工具SSH连接centos
下载链接:
Xshell-Xmanager-Xftp 7下载-安全终端模拟软件-Xshell中文网 (xshellcn.com)
使用Xshell连接Linux,需要Linux的ip地址。
虚拟机的IP地址:是自己设置网络的时候配置的,打开虚拟机的网络设置查看
云服务器的IP地址:使用共有IP地址。
打开Xshell,新建会话,输入名称和主机,主机是Linux的IP地址,如果是虚拟机就是虚拟机配置的IP,如果是云服务器就是云服务器的公网IP。
然后点击左侧的“用户身份验证”。
输入自己linux的root和密码
点击确定,连接就建立好了。
出现警告:选择接受和保存。
连接成功。
7.安装Docker
学习环境:win电脑 -> centos7虚拟机【docker】 -> docker容器
线上环境:云平台 -> 购买云主机【docker】 -> docker容器
7.1.安装docker-ce社区版
配置repo源
curl -o /etc/yum.repos.d/Centos-7.repo http://mirrors.aliyun.com/repo/Centos-7.repocurl -o /etc/yum.repos.d/docker-ce.repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repoyum clean all && yum makecache
查看可下载版本
yum list docker-ce --showduplicates | sort -r
安装
# 最新版
yum install -y docker-ce
# 指定版本
yum install -y docker-ce-23.0.6
8.2.启动docker-ce社区版
设置开机启动
systemctl enable docker
启动docker
systemctl start docker
systemctl restart docker
停止docker
systemctl stop docker
其他
## 查看docker信息docker version## 查看docker信息docker info## docker-clientwhich docker## docker daemonps -ef |grep docker
7.3.宿主机网卡转发
cat <<EOF > /etc/sysctl.d/docker.confnet.bridge.bridge-nf-call-ip6tables = 1net.bridge.bridge-nf-call-iptables = 1net.ipv4.conf.default.rp_filter = 0net.ipv4.conf.all.rp_filter = 0net.ipv4.ip_forward=1EOF
sysctl -p /etc/sysctl.d/docker.conf
7.4.配置镜像加速
类似于pip源,以后在docker中下载镜像时,使用加速器,下载就会比较快。
https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
sudo mkdir -p /etc/dockersudo tee /etc/docker/daemon.json <<-'EOF'{ "registry-mirrors": ["https://4rk5m12b.mirror.aliyuncs.com"]}EOFsudo systemctl daemon-reloadsudo systemctl restart docker
systemctl daemon-reloadsystemctl restart docker