Docker安装与基本使用(namespace与cgroup,docker安装,harbor部署,docker命令使用)
本文目录
一、Namespace和cgroup
二、Docker的安装
三、Docker的常用命令和使用
四、部署单机harbor
docker和harbor脚本以及Centos7镜像资源获取地址:百度云
链接:https://pan.baidu.com/s/1xpCymEm4gZ5lLQPT3UpP0w
提取码:dock
-----------------------------------------------------------------------------------
一、namespace和cgroup
在Docker中,由于个容器运行在一个操作系统上,共用宿主机的ghost os,隔离和限制成为问题。
docker容器的隔离和限制。docker利用操作系统的namespace做隔离,使用cgroups做资源限制。
概括:
cgroup主要作用:管理资源的分配、限制;可以概括为资源控制
Namespace 主要作用:封装抽象,限制,隔离,使命名空间内的进程看起来拥有他们自己的全局资源;可以概括为访问隔离
1.Namespace
namespce的类型
表现形式:
查看36654进程的namespace,可以看到namespace 是链接文件,格式为[隔离类型:唯一标识],唯一标识可看成namespace的ID,同一个ID下的进程共享该namespace的全局资源。
PID Namespace调度
进程在 PID namespace 中的调度只能是单向调度(从高 -> 低)。即:
- 进程只能从父 PID namespace 调度到 子 PID namespace 中;
- 进程不能从子 PID namespace 调度到 父 PID namespace 中;
2.cgroup
cgroup 是 Control group 的简称,cgroup 管理资源的分配、限制;可以概括为资源控制-
cgroup 可以对进程进行任意分组,如何分组由用户自定义。
二、Docker的安装(脚本安装)
环境准备:
系统:Centos7.7(7.5及以上) unbuntu20.0.4 或18.0.4
Docker版本:19.03或20.10
kubernetes:1.21.x或1.22.x
ceph:16.2.5
1.Centos7.7安装部署(可使用百度云链接中的centos7mini镜像)
# cat /etc/sysconfig/network-scripts/ifcfg-ens33 TYPE=Ethernet BOOTPROTO=static NAME=ens33 DEVICE=ens33 ONBOOT=yes IPADDR=192.168.181.80 NETMASK=255.255.255.0 GATEWAY=192.168.181.1
## 配置DNS
[root@localhost yum.repos.d]# vim /etc/resolv.confnameserver 192.168.181.
## 配置主机名
# hostnamectl --static set-hostname docker-90
## 光驱通电,挂载光盘,自动挂载,
[root@localhost ~]# mkdir /iso [root@localhost ~]# mount /dev/sr0 /iso [root@localhost ~]# chmod +x /etc/rc.d/rc.local [root@localhost ~]# vi /etc/rc.d/rc.local ##挂载 mount /dev/sr0 /iso
## 导入docker-ce 的 repo,使用aliyun的镜像
#vim /etc/yum.repo/aliyun.repo [base] name=base baseurl=https://mirrors.aliyun.com/centos/7/os/x86_64/ enabled=1 gpgcheck=0 [extras] name=extras baseurl=https://mirrors.aliyun.com/centos/7/extras/x86_64/ enabled=1 gpgcheck=0 [aliyun-os] name=aliyun-os baseurl=https://mirrors.aliyun.com/centos/7/os/x86_64/ enabled=1 gpgcheck=0 [aliyun-epel] name=aliyun-epel baseurl=https://mirrors.aliyun.com/epel/7/x86_64/ enabled=1 gpgcheck=0 [aliyun-extra] name=aliyun-extra baseurl=https://mirrors.aliyun.com/centos/7/extras/x86_64/ enabled=1 gpgcheck=0
## 补充一些必要的工具包
[root@localhost yum.repos.d]# yum install ntsysv bash-completion net-tools tree psmisc gpm mlocate vim wget
## 关闭防火墙和SElinux,及不必要服务
[root@localhost yum.repos.d]# iptables -F [root@localhost yum.repos.d]# iptables -t nat -F [root@localhost yum.repos.d]# systemctl stop firewalld [root@localhost yum.repos.d]# systemctl disable firewalld [root@localhost yum.repos.d]# systemctl stop NetworkManager [root@localhost yum.repos.d]# systemctl disable NetworkManager [root@localhost yum.repos.d]# systemctl stop postfix [root@localhost yum.repos.d]# systemctl disable postfix
## 关闭SElinux
[root@localhost yum.repos.d]# getsebool -a [root@localhost yum.repos.d]# vim /etc/selinux/config ##修改为 disabled SELINUX=disabled
## 重启虚拟机
升级操作系统内核(Docker安装前需要系统内核至少到3.1以上)
1、导入key
[root@docker ~]#rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
2、安装yum源,使用elrepo源
[root@docker ~]#rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm [root@docker ~]#yum clean all [root@docker ~]#yum makecache fast
3、安装内核
4、更改grub菜单的默认启动顺序
[root@docker ~]#grub2-set-default 0
5、重启 reboot
[root@docker ~]#uname -r 5.11.16-1.el7.elrepo.x86_64
6.使用docker-19.03.15-binary-install.tar脚本安装Docker
脚本在上面百度连接
没脚本可参考前几篇文章的Docker安装(超详细入门部署)
7.解压harbor-offline-installer-v2.3.2.gz
#mv harbor.yml.htl harbor.yml
#vim harbor.yml
主要修改以下几点:
hostname:192.168.181.90 修改为IP
harbor——admin——password: harbor的登陆密码
data_vlume: harbor的卷挂载目录
注释https证书认证
8.harbor页面访问
9.登陆远程登陆harbor
直接远程连接harbor将会出现以下信息
如图,默认访问了443端口,但是我们在harbor.yml注释了https和443.
找到service文件,添加本地仓库信任
或者第二种方法添加本地仓库信任
#vim /etc/docker/daemon.json
{ "registry-mirrors": ["https://xjwwbj57.mirror.aliyuncs.com"], "insecure-registries": ["192.168.181.90"],#此处填本地仓库信任地址 "debug": true, "experimental": false }
重新加载某个服务的配置文件
#sudo systemctl daemon-reload
重新启动 docker
#sudo systemctl restart docker
登陆验证:成功
10.harbor的简单使用
格式docker tag imagesID harborIP/项目名 #docker tag nginx 192.168.181.90/nginx 上传镜像到仓库 #docker push 192.168.181.90/nginx 下载镜像 #docker pull 192.168.181.90/nginx
四、docker命令使用
参考之前文章 https://www.cnblogs.com/cndr/p/15629236.html