[工具] Docker及Portainer GUI的使用
一、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中操作就可以了)
###