1. Docker的一些基础概念
由于Docker的轻量、以及易封装的特性,在开发&生产环境的构建、维护等方便,带来较多的便利。
Docker作为Linux的线程虚拟化技术,其两个基座是namespace和cgroup。
通过namespace来实现资源的隔离,包括cpu、memory、network
基于Linux的namespace与cgroup。
docker利用宿主机的各类namespace实现资源的隔离,namespace包括了:
- MNT namespace,
- IPC namespace,
- UTS namespace,
- PID namespace,
- Net namespace,
- User Namespace。
docker利用宿主机的cgroup实现容器间的资源隔离,包括了
- blkio
- cpu
- cpuset
- devices
- memory
- net_cls
- ns
- perf_event
其中常用的组件是cpu与memory的限制
2. docker的安装
如果安装过低版本的docker,需要先卸载
yum remove docker docker-common docker-selinux docker-engine docker-ce.x86_64
rm -rf /etc/docker rm -rf /run/docker rm -rf /var/lib/dockershim rm -rf /var/lib/docker
安装需要的软件包
uname -sr # 3.10以上版本才可以安装Docker
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo #(阿里仓库)
yum clean all
yum makecache
安装Docker-ce
yum install docker-ce
systemctl start docker
systemctl enable docker
验证
docker run helloword
3. Docker常用命令
官方帮助文档的链接:
https://docs.docker.com/engine/reference/commandline/run/
(1) 帮助命令
docker version # 显示docker的版本
docker info # 显示docker的系统信息,包括镜像和容器的数量
docker 命令 --help # 某一命令的帮助信息
(2)镜像命令
docker images # 查看本机上的镜像,等同于 docker image ls
docker images -a # 显示所有
docker images -q # 仅显示id
docker image --help
docker search # 搜索镜像
docker pull # 下载镜像,等同于 docker image pull,例如: docker pull tomcat:8
docker rmi # 删除镜像,等同于 docker image rm
docker rmi -f 镜像id
docker rmi -f 镜像id 镜像id 镜像id
docker rmi -f $(docker images -aq) # 删除所有镜像
(3)容器命令
docker run 镜像id # 运行容器
docker ps
docker rm # 删除指定容器
docker start 容器id # 启动容器
docker restart 容器id
docker stop 容器id
docker kill 容器id # 强制停止当前容器
docker kill $(docker ps -qa) # 停止当下所有的容器
4.部署单机harbor
(1)安装docker-compose 1.24.1
harbor需要docker-compose进行安装。
在https://github.com/docker/compose/releases/ 上下载 docker-compose-Linux-x86_64_1.24.1。
放到/usr/local/bin下,给可执行权限。
(2)安装Harbor
下载解压安装包:官网地址:https://github.com/vmware/harbor/releases/,下载链接
https://github.com/goharbor/harbor/releases/download/v2.3.2/harbor-offline-installer-v2.3.2.tgz
相关的操作如下
tar zxf harbor-offline-installer-v2.3.2.tgz cd harbor cp harbor.yml.tmpl harbor.yml vim harbor.yml #修改 hostname: 192.168.102.201 #注释掉https模块 #修改harbor_admin_password: ./install.sh --with-trivy --with-chartmuseum
(3)验证
浏览器打开 http://192.168.102.201, 用户名:admin,密码:之前设定的密码
进入后的界面
先新建公开项目,可以通过docker push上传镜像,需要先docker login,再上传镜像。
# vim /etc/docker/daemon.json { "insecure-registries":["192.168.102.201:80","192.168.102.202:80"] }
# systemctl restart daemon-reload
# systemctl restart docker
# docker login -u{用户名} -p{密码} 192.168.102.201:80