一、关闭firewall,永久关闭,使用iptables防火墙

  1. systemctl stop firewalld.service #停止firewall
  2. systemctl disable firewalld.service #禁止firewall开机启动
  3. firewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)
  4.  
  5. yum install iptables-services -y   # 安装防火墙
    systemctl restart iptables.service  # 重启防火墙

二、安装docker

  1. 要求centos7版本
    yum install docker -y 安装
  2. docker -v 查看版本
  3.   Docker version 1.12.6, build 3e8e77d/1.12.6
    systemctl start docker   启动docker
    ps -ef|grep docker     查看是否有docker进程
    systemctl enable docker   设置docker开机自启动

三、下载打包好镜像文件

1)本地镜像制作过程

  1. [root@localhost ~]# docker ps
  2. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  3. da67831689e3 docker.io/nginx "/bin/bash" 17 seconds ago Up 16 seconds 0.0.0.0:80->80/tcp cocky_aryabhata
  4. [root@localhost ~]#
  5. [root@localhost ~]# docker commit da67831689e3 test
  6. sha256:783e5f357a7fec72303b88fd4a6a97268ea3481fc2433331a23a59e4552ff1ed
  7. [root@localhost ~]# docker images
  8. REPOSITORY TAG IMAGE ID CREATED SIZE
  9. test latest 783e5f357a7f 6 seconds ago 109 MB
  10. docker.io/nginx latest 7042885a156a 12 days ago 109 MB
  11. [root@localhost ~]#
  12.  
  13. [root@localhost ~]# docker save test > new_nginx.tar
  14. [root@localhost ~]# ls
  15. anaconda-ks.cfg new_nginx.tar
  16. [root@localhost ~]# docker images
  17. REPOSITORY TAG IMAGE ID CREATED SIZE
  18. test latest 783e5f357a7f 6 minutes ago 109 MB
  19. docker.io/nginx latest 7042885a156a 12 days ago 109 MB
  20. [root@localhost ~]# cat new_nginx.tar |docker import - new-nginx
  21. sha256:8e1deabb4ca699ac12196e09b2bd3742f6dc6eb2f5df5f64ee4487634d7ddf41
  22. [root@localhost ~]# docker images
  23. REPOSITORY TAG IMAGE ID CREATED SIZE
  24. new-nginx latest 8e1deabb4ca6 3 seconds ago 113 MB
  25. test latest 783e5f357a7f 7 minutes ago 109 MB
  26. docker.io/nginx latest 7042885a156a 12 days ago 109 MB

1)上传打包好的镜像文件

  1. [root@Squid ~]# docker images 查看本地镜像
  2. REPOSITORY TAG IMAGE ID CREATED SIZE
  3. # 上传打包好的镜像包lamp-zabbix.tar
  4. [root@Squid ~]# ll lamp-zabbix.tar
  5. -rw-r--r--. 1 root root 1323229696 2 10 14:27 lamp-zabbix.tar
  6. [root@Squid ~]# cat lamp-zabbix.tar |docker import - lamp-zabbix:v1  
  7. sha256:8c4e625c0b2806330b8e974283dfaf7987305c428bb63152c3532f38bf0f728d
  8. [root@Squid ~]# docker images  # 有文件说明导入docker成功
  9. REPOSITORY TAG IMAGE ID CREATED SIZE
  10. lamp-zabbix v1 8c4e625c0b28 About a minute ago 1.302 GB

四、运行lamp-zabbix容器

  1. [root@Squid ~]# docker run --name zabbix_server -t -i -p 88:80 8c4e625c0b28 /bin/bash
    # 将容器的web 80端口映射到容器外部80端口上
  2. [root@7d17cdcaf9bd /]# /etc/init.d/httpd start
  3. [root@7d17cdcaf9bd /]# /etc/init.d/mysqld start
  4. [root@7d17cdcaf9bd /]# /etc/init.d/zabbix_server start
  1. [root@7d17cdcaf9bd /]# exit 退出容器
    [root@Squid ~]# vi /etc/sysconfig/iptables
      -A INPUT -p tcp -m state --state NEW -m tcp --dport -j ACCEPT
    [root@Squid ~]# docker start zabbix_server

五、慎用的操作的恢复

  1. [root@7d17cdcaf9bd /]# exit 退出容器,即停止容器。容器的业务都将停止
  2. [root@Squid ~]# docker ps
  3. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  4.  
  5. [root@Squid ~]# docker start 7d17cdcaf9bd 再次进入容器
  6. iptables: No chain/target/match by that name. 报错
  7. [root@Squid ~]# docker start 7d17cdcaf9bd # 重启docker
  8. 7d17cdcaf9bd
  9. [root@Squid ~]# docker ps
  10. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  11. 7d17cdcaf9bd 8c4e625c0b28 "/bin/bash" 27 minutes ago Up 10 seconds 0.0.0.0:88->80/tcp zabbix_server
  12. # 容器已经启动
  13. [root@Squid ~]# docker exec -ti 7d17cdcaf9bd /bin/bash
  14. [root@7d17cdcaf9bd /]# netstat -lntup
  15. Active Internet connections (only servers)
  16. Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name

六、对于zabbix超级用户密码的修改

1)知道密码的情况下进行修改

2)忘记密码的情况下进行修改

登录数据库修改

  1. # mysql -uroot -p #登陆数据库
  2. mysql> show databases;
  3. mysql> use zabbix;
  4. mysql> show tables;
  5. | triggers |
  6. | users |
  7. | users_groups |
  8. | usrgrp |
  9. | valuemaps |
  10. +----------------------------+
  11. 127 rows in set (0.00 sec)
  12. =====》users表就是存放用户密码的表,而ID1就是超级管理员的账号密码
  13. mysql> select * from users; # 查看表里的字段,admin对应的ID是1
  14. mysql> select userid,passwd from users;
  15. +--------+----------------------------------+
  16. | userid | passwd |
  17. +--------+----------------------------------+
  18. | 1 | a9eead793bcab362333108a451447758 |
  19. | 2 | d41d8cd98f00b204e9800998ecf8427e |
  20. +--------+----------------------------------+
  21. 2 rows in set (0.00 sec)
  22. =====》密码是经过md5加密的
  23. 重新开个终端,生成一个MD5加密的密码,这里密码设置的是RedHat
  24. [root@localhost ~]# echo -n redhat|openssl md5 #-n就表示不输入回车符,不加-n,否则就不是这个结果了。
  25. (stdin)= e2798af12a7a0f4f70b4d69efbc25f4d
  26. 接着上面的为admin用户设定一个密码
  27. mysql> update users set passwd='e2798af12a7a0f4f70b4d69efbc25f4d' where userid = '1';
  28. #或者直接使用update users set passwd=md5("redhat") where userid='1';
  29. Query OK, 1 row affected (0.01 sec)
  30. Rows matched: 1 Changed: 1 Warnings: 0
  31. mysql> flush privileges;
  32. mysql> quit

七、docker启动错误

  1. [root@Squid ~]# docker start c6c3b185f2ce
  2. Error response from daemon: devmapper: Error mounting '/dev/mapper/docker-253:0-35197283-f75fa419830cf84b0dbc1d1d06e9bc67de6fc41789b5abd3ef221c291222f47a' on '/var/lib/docker/devicemapper/mnt/f75fa419830cf84b0dbc1d1d06e9bc67de6fc41789b5abd3ef221c291222f47a'. fstype=xfs options=nouuid,context="system_u:object_r:svirt_sandbox_file_t:s0:c34,c941": invalid argument
  3. <6>[ 111.172763] IPv6: ADDRCONF(NETDEV_UP): docker0: link is not ready
  4. <4>[ 130.630581] sched: RT throttling activated
  5. <4>[ 238.455112] XFS (dm-3): unknown mount option [context="system_u:object_r:svirt_sandbox_file_t:s0:c34].
  6. Error: failed to start containers: c6c3b185f2ce

  修复方法主要有两种:

  1. 可以将selinux重新置为enable,然后重启物理机,即可修复。
  2. 修改容器的配置。比如我的容器的配置是/var.lib/docker/containers/e7ef71494940ba293be4b3f74198bf34835c35537810053b051d9a6c33adbd32/config.v2.json文件。将其中的"MountLabel": "system_u:object_r:svirt_sandbox_file_t:s0:c12,c257", "ProcessLabel": "system_u:system_r:svirt_lxc_net_t:s0:c12,c257"重修修改为"MountLabel": "", "ProcessLabel": "",然后重新启动docker daemon,容器即可修复。

docker使用自定义镜像zabbix服务的更多相关文章

  1. docker构建自定义镜像

    docker构建自定义镜像 要构建一个镜像,第一步准备所需要的文件,第二步编写Dockerfile文件,比如我现在构建一个java web镜像 第一步:准备java web工程的war包文件(这里假设 ...

  2. docker基础——自定义镜像、创建私有仓库、查看 docker 运行状态

    一.自定义镜像 1,案例1 要求:请自定义一个 docker 镜像,基于 hub.c.163.com/library/centos,要求创建出来的镜像在生成容器的时候,可以直接使用 ifconfig ...

  3. Docker 11 自定义镜像

    参考源 https://www.bilibili.com/video/BV1og4y1q7M4?spm_id_from=333.999.0.0 https://www.bilibili.com/vid ...

  4. Docker入门3------手动编辑自定义镜像

    手动编辑自定义镜像 查看本地现有镜像: 基于centos创建一个,会自动下载centos最新原始镜像 docker run -it --name=web centos /bin/bash 然后在容器内 ...

  5. Docker | 第五章:构建自定义镜像

    前言 上一章节,主要是介绍了下Dockerfile的一些常用命令的说明.我们知道,利用Dockerfile可以构建一个新的镜像,比如运行Java环境,就需要一个JDK环境的镜像,但直接使用公共的镜像时 ...

  6. docker+zabbix,使用docker搭建zabbix服务

    Zabbix 介绍 zabbix(音同 zæbix)是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案. zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供灵 ...

  7. 【Docker学习之五】Docker自定义镜像示例

    环境 docker-ce-19.03.1-3.el7.x86_64 centos 7 一.创建centos+jdk+tomcat镜像 对于公用的容器比如,tomcat.nginx.mysql等应用组件 ...

  8. 五十四.自定义镜像及仓库、持久化存储 、 Docker网络架构

    1. 制作自定义镜像(base基础镜像,搭建共性环境) 基于centos镜像使用commit创建新的镜像文件 基于centos镜像使用Dockerfile文件创建一个新的镜像文件   1.1 使用镜像 ...

  9. Docker学习(六)Dockerfile构建自定义镜像

    Docker学习(六)Dockerfile构建自定义镜像 前言 通过前面一篇文章可以知道怎么去使用一个镜像搭建服务,但是,如何构造自己的一个镜像呢,docker提供了dockerfile可以让我们自己 ...

随机推荐

  1. 每月IT摘录201811

    技术 1.打牢基础,从会使用-了解原理-了解思想一步一步来,最怕基础很弱但却以什么都用过为荣的人,这样的人我招进来也只是初级而已,工作年限再多也没有用.少林里面,有功和拳之分,如蛇拳猴拳是拳,马步功石 ...

  2. c++ 面试题(汇总)

    1,extern 关键字作用: http://www.cnblogs.com/lzjsky/archive/2010/11/24/1886686.html 2,static 关键字作用: https: ...

  3. codeblocks17.12 不能启动调试器

    调试器需要手动指定. settings->debugger->default->executable path.这里默认空的,需要指定.路径在安装目录下的CodeBlocks\Min ...

  4. WAS 默认端口列表

  5. Ant 使用指南 与 知识汇总

    一.Ant是什么?        Ant是一种基于Java和XML的build工具.它可以帮助我们将项目开发过程中需要完成的各种步骤组织起来,通过一个简易的方式来构建整个项目.Ant究竟能做什么呢?这 ...

  6. 思维+并查集 hdu5652

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5652 题意: 输入T,接下来T个样例,每个样例输入n,m代表图的大小,接下来n行,每行m个数,代表图, ...

  7. Python+Selenium学习--下拉框处理

    场景 下拉框也是web 页面上非常常见的功能,webdriver 对于一般的下拉框处理起来也相当简单,要想定位下拉框中的内容,首先需要定位到下拉框:这样的二次定位 下拉框一般有以下两种方式: 鼠标移上 ...

  8. 微信小程序开发——使用promise封装异步请求

    前言: 有在学vue的网友问如何封装网络请求,这里以正在写的小程序为例,做一个小程序的请求封装. 关于小程序发起 HTTPS 网络请求的Api,详情可以参考官方文档:wx.request(Object ...

  9. Spring <context:annotation-config> 和 <context:component-scan> 区别

    一篇很不错的文章,看到就是赚到Get.... https://www.cnblogs.com/leiOOlei/p/3713989.html 说白了 :<context:component-sc ...

  10. go语言net包udp socket的使用

    udp与tcp的不同在于客户端请求方式不同,udp缺少Accept函数. 一个简单的udp客户端: package main; import ( "net" "log&q ...