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@Docker1 /etc/yum.repos.d]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
[root@Docker1 /etc/yum.repos.d]#yum clean all
[root@Docker1 /etc/yum.repos.d]#yum makecache fast

 

## 补充一些必要的工具包

[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、安装内核

[root@docker ~]#yum --enablerepo=elrepo-kernel install kernel-ml-devel kernel-ml -y

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

posted @ 2022-01-01 17:14  小小一兆  阅读(258)  评论(0编辑  收藏  举报