Docker使用

发布时间:2025-03-09 人气:53次

1.什么 docker?

docker就是一个软件,支持在win、mac、linux系统上进行安装。


可以帮助我们在一台电脑上创建出多个隔离的环境,比传统的虚拟机极大的节省资源 。


为什么要创建隔离的环境?


假设你先在有一个centos7.6系统运行程序,而这个程序需要依赖【ubuntu系统的服务A】 + 【centos7.9的服务B】- 传统的方式:买新服务器- 虚拟化方式:在原来的NB服务器上利用虚拟化技术创建虚拟机(vmware、kvm等),用虚拟机做隔离去跑新的业务。- docker的方式:利用docker软件创建一个新的容器,用容器去做隔离区跑新的业务。


为什么docker可以比虚拟机极大的节省资源?


- 虚拟机的方式,是在电脑完整的创建一个操作系统。- docker的方式,创建的容器不是完整的操作系统,而是充分利用宿主机内核+进程,只是创建了一些必备的资源。

1.png

2.必备概念

2.png

DockerHub,远程镜像仓库。


仓库中有官方的一些镜像文件,也有开发者自定义的镜像文件。


Images,本地镜像仓库。


可以去远程仓库下载镜像到本地仓库,后续再根据镜像为“模版”去创建容器。本地的镜像也可以发布到远程镜像库。


镜像是之前用虚拟机创建操作系统时的ISO文件吗?


不是,此处是docker中的特殊的文件。


镜像是个什么样的文件?


镜像就是充当模版来使用,在他得内部包含打包好了的:运行所需依赖 + 业务代码。后期基于镜像一键创建出的容器也就会自动包含依赖和业务代码,直接就可以运行了,不需要再安装+拷贝代码了。

Containers,容器。


容器就是根据镜像创造出来的一个个隔离的环境。

3.png


3.环境准备

4.png


学习环境:win电脑  ->  centos7虚拟机【docker】   -> docker容器


线上环境:云平台    ->  购买云主机【docker】          -> docker容器


例:在win电脑安装:vmware工具 + 创建centos系统(初始化)


4.VMware

4.1 下载安装

下载后,无脑点击安装即可。


4.2 虚拟化支持

5.png6.png


注意:开启后重启即可,如果电脑提示无法启动,则需要先进入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 

选择订阅-通过 Docker 订阅在协作、安全性和支持之间找到完美的平衡!
在线客服
联系方式

热线电话

18221674630

上班时间

周一到周五

公司电话

18221674630

二维码
线
获取免费体验资格

提交后,我们将在3个小时内与您联系