Docker及图形化管理UI Portainer的搭建

3,731 阅读1分钟

一、什么是Docker?

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

二、搭建Dokcer的方法

参考链接:www.runoob.com/docker/ubun… 这里唯一需要注意的就是Docker国内镜像的配置,以MAC为例:

鉴于国内网络问题,后续拉取 Docker 镜像十分缓慢,我们可以需要配置加速器来解决,我使用的是网易的镜像地址:hub-mirror.c.163.com

在任务栏点击 Docker for mac 应用图标 -> Perferences... -> Daemon -> Registry mirrors。在列表中填写加速器地址即可。修改完成之后,点击 Apply & Restart 按钮,Docker 就会重启并应用配置的镜像地址了。

6B76CF7C-DC88-4DB4-8305-31EEF4323372.png

之后我们可以通过 docker info 来查看是否配置成功。

$ docker info
...
Registry Mirrors:
 http://hub-mirror.c.163.com
Live Restore Enabled: false

三、什么是Portainer?

Portainer是Docker的图形化管理工具,提供状态显示面板、应用模板快速部署、容器镜像网络数据卷的基本操作(包括上传下载镜像,创建容器等操作)、事件日志显示、容器控制台操作、Swarm集群和服务等集中管理和操作、登录用户管理和控制等功能。功能十分全面,基本能满足中小型单位对容器管理的全部需求。

四、Portainer的搭建

非常简单一条命令即可

docker pull portainer/portainer && docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer

上述命令执行了这几个步骤:

  • 拉取 portainer/portainer镜像
  • 以 portainer/portainer镜像构造容器,映射容器端口9000到本机9000端口,挂载容器磁盘/var/run/docker.sock到本机/var/run/docker.sock 执行完命令之后,浏览器访问http://localhost:9000即可打开Portainer
    image.png

五、使用Docker搭建nginx,实现域名映射

  • 在Portainer的App Templates菜单里找到Nginx模板,直接运行构建 nginx,或者使用如下命令搭建
docker pull nginx && docker run -d -p 80:80 -v /Users/jinwenwu/Documents/nginx/nginx.conf:/etc/nginx/nginx.conf  nginx
  • 修改之前挂载的nginx.conf配置文件
user  nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    server {
        listen 80;
        server_name docker.xyz.cn;
        location / {
            proxy_pass http://192.168.27.180:9000;
        }
    }
}

  • 在host文件中配置
192.168.27.180 docker.xyz.cn
  • 在Portainer重启nginx容器,即可通过docker.xyz.cn域名访问Portainer