一、Docker Engine安裝
1.安裝流程
1)移除舊版本(如果有舊版本)
yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-selinux \ docker-engine-selinux \ docker-engine rm -rf /etc/systemd/system/docker.service.d rm -rf /var/lib/docker rm -rf /var/run/docker rm -rf /usr/local/docker rm -rf /etc/docker
2)安裝必要的系統工具
yum -y install yum-utils device-mapper-persistent-data lvm2
3)添加aliyun的源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum clean all yum makecache fast
4)安裝docker-ce
yum -y install docker-ce
5)啟動服務
systemctl start docker
# 開機自動啟動
systemctl enable docker
6)測試運行docker
docker run hello-world
2.使用docker國內倉庫
1)修改或創建daemon.json配置文件
# vi /etc/docker/daemon.json { "registry-mirrors": ["http://hub-mirror.c.163.com"] }
2)重啟服務
systemctl restart docker
3)其他國內鏡像
Docker中國區官方鏡像 https://registry.docker-cn.com ustc https://docker.mirrors.ustc.edu.cn 中國科技大學 https://docker.mirrors.ustc.edu.cn 阿里雲容器 服務 https://cr.console.aliyun.com/ 首頁點擊“創建我的容器鏡像” 得到一個專屬的鏡像加速地址,類似於“https://1234abcd.mirror.aliyuncs.com”
4)測試
docker run -itd centos /bin/bash
[root@myserver ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES f57d4703adc3 centos "/bin/bash" About a minute ago Up About a minute jolly_dhawan [root@myserver ~]# docker exec -it f57d4703adc3 /bin/bash [root@f57d4703adc3 /]# [root@f57d4703adc3 /]# cat /etc/RedHat-release CentOS Linux release 7.6.1810 (Core) [root@f57d4703adc3 /]#
3.創建鏡像並推送到docker hub
1)去docker hub申請賬號
例如申請的賬號為leokalezz
2)在容器中進行一些修改操作
[root@centos7 ~]# docker exec -it dbd75e2682a8 /bin/bash [root@dbd75e2682a8 /]# echo "hello" > data.txt [root@dbd75e2682a8 /]# ls bin data.txt dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var
3)制作鏡像
[root@centos7 ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES dbd75e2682a8 centos "/bin/bash" 2 minutes ago Up 2 minutes my_centos e5f817480d00 busybox "sh" 19 minutes ago Up 19 minutes zen_goldstine a1a2f8c2c138 portainer/portainer "/portainer" 2 hours ago Up 2 hours 0.0.0.0:9001->9000/tcp my_portainer [root@centos7 ~]# docker commit -m 'test' dbd75e2682a8 leokalezz/leo_centos sha256:1391b7a85a6b35b29db41e640b0eb7802fffade21876db32f420f6bd84c2c3f1 [root@centos7 ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE leokalezz/leo_centos latest 1391b7a85a6b 14 seconds ago 237MB leokalezz/my_busybox latest 12edcbaff582 19 minutes ago 1.22MB portainer/portainer latest 10383f5b5720 12 days ago 78.6MB centos latest 470671670cac 6 weeks ago 237MB busybox latest 6d5fcfe5ff17 2 months ago 1.22MB
leokalezz/leo_centos是我們制作的鏡像。leokalezz是在docker hub上申請的賬號。
4)推送鏡像到自己的倉庫
先登錄docker:
[root@centos7 ~]# docker login Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one. Username: leokalezz Password: WARNING! Your password will be stored unencrypted in /root/.docker/config.json. Configure a credential helper to remove this warning. See https://docs.docker.com/engine/reference/commandline/login/#credentials-store Login Succeeded
然后推送:
[root@centos7 ~]# docker push leokalezz/leo_centos The push refers to repository [docker.io/leokalezz/leo_centos] 482b086d215e: Pushed 0683de282177: Mounted from library/centos latest: digest: sha256:3476790ea9bcd7aeac10f9cbdf2059a1878365d20134083b3c8d3668ef49dda1 size: 736
5)查看推送的鏡像
二、安裝和使用Portainer GUI
1.搜索portainer鏡像
[root@centos7 ~]# docker search portainer NAME DESCRIPTION STARS OFFICIAL AUTOMATED portainer/portainer Making Docker management easy. https://porta鈥 1573 portainer/agent An agent used to manage all the resources in鈥 54 portainer/templates App Templates for Portainer http://portainer鈥 17 lihaixin/portainer docker ui 11 [OK] portainerci/portainer Portainer images automatically created via P鈥 4 portainer/golang-builder Utility to build Golang binaries. 4 [OK] greenled/portainer-stack-utils Bash scripts to deploy/undeploy stacks in a 鈥 3 [OK] portainer/base Multi-stage build image to create the Portai鈥 2 [OK] stefanscherer/portainer Portainer for Windows 1809 and some older In鈥 2 hassioaddons/portainer 1 softonic/portainer-endpoint Allows auto register all the swarm nodes in 鈥 1 [OK] j0nnylester/portainer portainer running on a Raspberry Pi 1 11384eb/portainer 0
2.拉取portainer的image
docker pull portainer/portainer
3.運行Portainer
1)運行之前先關閉selinux
selinux sed -i '/SELINUX/s/enforcing/disabled/g' /etc/selinux/config
2)為portainer創建一個volume(也可以不創建)
docker volume create portainer_volume
3)啟動portainer容器
docker run --name=my_portainer -d -p 9001:9001 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_volume:/data portainer/portainer
該容器命名為my_portainer,將容器中portainer默認端口9000,映射到宿主機端口9001,使用socket映射 /var/run/docker.sock:/var/run/docker.sock,指定volume映射(即將portainer_volume對應的宿主機目錄掛載到容器的/data目錄),容器基於portainer/portainer鏡像啟動。
4.使用portainer
1)使用瀏覽器訪問http://宿主機IP:9001
第一次登陸,會讓我們設置密碼。
2)選擇local模式
由於portainer支持local、remote、agent等形式來管理docker容器。我們這里是為了管理本地的docker容器,所以選擇第一個local。
如果要管理其他機器的docker容器,或者docker集群,則可以選擇后面的對應模式。
3)查看我們管理下的endpoint
portainer可以同時管理多個endpoints,包括本地或遠程的。這里我們只有本地的endpoint。
4)查看endpoint中所有的信息
點擊local endpoint進入管理頁面:
可以看到該頁面包含該endpoint幾乎所有的信息,其中有鏡像信息、容器信息、容器網絡、volume等,並且提供操作。(有時候可能操作會報錯,這時再去CMD中操作就可以了)
###