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