[工具] 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 in1                                       [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中操作就可以了)

 

###

 

posted @ 2020-03-01 15:10  风间悠香  阅读(4605)  评论(1编辑  收藏  举报