1.docker介绍
- docker是一个软件,是一个容器软件,可以将软件限制在一个容器里,然后可以限制这个容器使用的cpu,内存,磁盘IO,网络IO等资源。
2.docker安装
2.1环境准备
首先需要一台centos7.9的linux系统,给4核8G的内存,100个G的磁盘(以后镜像消耗很多磁盘空间),相当于一台真实的机器,真实机器再用容器(所以内存给8G),用NAT模式
连接Xshell,更改主机名为docker,再配置静态ip(防止ip地址改变xhell断开)
2.2docker安装
docker安装文档CentOS | Docker Docs
但现在只支持centos9的,博主去网上搜了适用centos7.9教程,并解决了安装时出现的一系列问题,命令一个一个按顺序敲就行
1.安装所需的包
[root@docker ~]# sudo yum install -y yum-utils 会出错
原因:需要更换软件源
由于 CentOS 7 官方源已经停止维护,你可以将其替换为国内的镜像源,如阿里云、清华大学等。
sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
以阿里云镜像源为例:
sudo curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
2.[root@docker ~]# sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
添加 Docker 官方的阿里云镜像源docker-ce.repo,以便后续使用 yum
来安装 Docker 相关组件
3.[root@docker yum.repos.d]# sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y 安装Docker引擎
4.[root@docker yum.repos.d]# sudo systemctl start docker 启动docker
5.设置docker服务开机启动
[root@docker yum.repos.d]# systemctl enable docker
6.关闭firewalld服务和seliux
[root@docker yum.repos.d]# service firewalld stop
[root@docker yum.repos.d]# systemctl disable firewalld 设置开机不自启
[root@docker ~]# vim /etc/selinux/config
修改一处为SELINUX=disabled,其他不用动
7.重启linux系统
[root@docker ~]# reboot
iptables查看docker 配置的一些规则
机器挂起有时iptables规则链失效,建议不用时关机,或者service docker restart一下
docker version
命令用于显示 Docker 客户端和服务器的版本信息。docker images
命令用于列出本地 Docker 主机上的所有镜像。docker ps
命令用于列出正在运行的 Docker 容器。
现在没有运行的容器
3.安装nginx容器
3.1.拉取镜像
1.下载nginx的镜像,镜像是包括了应用源程序的文件
[root@docker ~]# docker pull nginx
一般拉取镜像失败,存在超时问题
[root@docker ~]# cd /etc/docker
[root@docker docker]# vim /etc/docker/daemon.json
编辑以下内容进去,一般没有daemon.json ,直接创新的就行
[root@docker docker]# systemctl daemon-reload
[root@docker docker]# service docker restart
重新加载配置文件和重启docker
[root@docker docker]# docker pull nginx 拉取成功
查看现有镜像
2.创建并启动nginx容器
[root@docker docker]# docker run --name nginx-1 -d -p 8080:80 --cpu-shares 100 --cpus 1 --cpuset-cpus 0 -m 100000000 nginx
显示编号则创建成功
● docker run:创建并启动新容器。
● --name nginx-1:为容器命名,方便管理。
● -d:以守护进程模式后台运行。
● -p 8080:80:将宿主机 8080 端口映射到容器 80 端口。
● --cpu-shares 100:设置 CPU 共享权重,该容器竞争 CPU 资源能力弱。
● --cpus 1:限制容器最多用 1 个 CPU 核心。
● --cpuset-cpus 0:将容器绑定到宿主机第 0 个 CPU 核心。
● -m 100000000:限制容器内存使用上限约 95.37MB。
● nginx:使用 nginx 镜像,本地无则从 Docker Hub 拉取。
查看正在运行的docker容器(将宿主机的 8080 端口映射到容器的 80 端口 ,映射范围包括所有 IP 地址
docker网络架构图
用户(user)通过宿主机的 WAN 口(ens33 ,x.x.x.x)的 8080 端口访问。
真实机网页访问宿主机 8080 端口,恭喜你容器运行起来了,外部能访问(改为自己虚拟机的ip地址加8080端口)
4.总结
以上就是参考docker官方文档和网上教程在全新的虚拟机上安装docker并部署nginx的全部过程,接下来作者也会继续更新docker相关内容,有啥错误或不足的地方请指正,创作不易,一键三连。