使用docker搭建自动化规则测试环境

一、问题场景

自动化规则测试环境,使用python2编写,依赖于redis-py-cluster,pykafka,futures,mysql-python。在本地搭建测试环境,python安装 没有出现问题,但是在安装python插件时,遇到问题较多,解决花费时间较长,且未能完全解决,导致测试环境迟迟不能运行。所以决定采用docker来 搭建测试环境。

二、搭建步骤

以下为搭建环境的步骤

1、安装docker环境不提

2、创建基本python环境,并安装插件

  • 创建Dockerfile文件
  • 在Dockerfile中输入如下代码 “` FROM centos:7 MAINTAINER Augustus “[email protected]
RUN yum -y update RUN yum -y install epel-release RUN yum -y install python-pip RUN yum -y install mysql-devel RUN yum -y install python-devel RUN yum -y install MySQL-python RUN pip install –upgrade pip RUN pip install pykafka RUN pip install mysql RUN pip install redis-py-cluster RUN pip install futures

build 基本镜像,执行命令

docker build py_auto:v1 .

3、创建支持java命令环境

创建Dockerfile

mkdir v2 && cd v2 &&  vi Dockerfile ``` * 从oracle下载linux-jdk8到当前目录 * 在Dockerfile中输入如下命令 ``` FROM py_auto_base:v2 MAINTAINER Augustus "[email protected]"
ADD ./jdk-8u151-linux-x64.rpm /opt/ RUN rpm -ivh /opt/jdk-8u151-linux-x64.rpm RUN rm -f /opt/jdk-8u151-linux-x64.rpm

执行如下命令

docker build py_auto:v2 .

4、创建测试环境

在项目目录下创建Dockerfile

在Dickerfile中输入如下命令

FROM py_auto_base:v2 MAINTAINER Augustus “[email protected]”

RUN mkdir /py_auto VOLUME [“/py_auto”]

CMD [“/bin/bash”]

运行命令

docker build auto_test:v1 .

三、运行并执行测试

如果上面一切顺利,那我们这边已经成功构建了auto_test:v1镜像。下面我们来启动镜像并运行测试环境。

启动镜像

docker run -v /Users/augustus/asiawork/pytest/py-autotest-frame:/py_auto –name auto_test -d -it auto_test:v1

运行测试

docker exec auto_test python /py_auto/pyautotestframe/pyautotestframe.py -m sample-test

这样成功运行了测试实例。

四、一点心得

采用docker,快速的搭建了测试环境,在新增人员的情况下,可以节省不少时间在环境搭建上。就是对于开发 者也可以避免很多搭建环境的问题。

本示例采用的是每次一执行,所以使用docker exec,在有些情况下,需要启动镜像便运行环境的时候,可以 在Dockerfile中使用ENTRTPOINT来以使镜像启动便运行。

Centos7修改docker的Data Space Total大小

记得备份你的容器

此处就不多做介绍了

–storage-opts 参数

devicemapper文档:https://github.com/moby/moby/tree/master/daemon/graphdriver/devmapper
docker官方文档:https://docs.docker.com/engine/reference/commandline/dockerd/#options-per-storage-driver

修改docker的启动参数

停止docker,修改配置,重新加载配置

<code><span class="hljs-built_in">sudo</span> systemctl stop docker
<span class="hljs-built_in">sudo</span> vi /lib/systemd/system/docker.service</code>

找到 ExecStart=/usr/bin/dockerd
在这一行后面加上
--storage-opt dm.loopdatasize=8G --storage-opt dm.loopmetadatasize=4G --storage-opt dm.basesize=8G 即可,意思是为,设置devicemapper的data为8G,metadata为4G,镜像的大小不能大于8G

记得还要抹去现有的空间,请确保你已经完成了第一步

<code>sudo rm -rf /var/lib/docker
sudo mkdir -p /var/lib/docker/devicemapper/devicemapper/
sudo dd <span class="hljs-keyword">if</span>=<span class="hljs-regexp">/dev/zero</span> of=<span class="hljs-regexp">/var/lib</span><span class="hljs-regexp">/docker/devicemapper</span><span class="hljs-regexp">/devicemapper/data</span> bs=<span class="hljs-number">1</span>M count=<span class="hljs-number">0</span> seek=<span class="hljs-number">8192</span>
sudo dd <span class="hljs-keyword">if</span>=<span class="hljs-regexp">/dev/zero</span> of=<span class="hljs-regexp">/var/lib</span><span class="hljs-regexp">/docker/devicemapper</span><span class="hljs-regexp">/devicemapper/metadata</span> bs=<span class="hljs-number">1</span>M count=<span class="hljs-number">0</span> seek=<span class="hljs-number">4096</span></code>

完成后运行

<code><span class="hljs-built_in">sudo</span> systemctl daemon-reload
<span class="hljs-built_in">sudo</span> systemctl start docker
docker info</code>

查看是否设置正确,貌似比预设的大了一点点。

未分类

让docker处于ufw防火墙的控制下

最近在使用docker时遇到了一个大坑:运行一个实例时,将宿主机的一个端口映射到docker的一个实例,也就是使用-p 8080:80命令运行后,端口呢是能在宿主机上直接访问了,但是我突然发现我在本地居然也能访问服务器上的8080端口号,这就不科学了,因为我通过ufw把8080禁止的呀!

查资料可知,dockerz直接在iptables上进行修改,ufw的设置对它没有作用。下面是解决办法。

修改ufw默认的配置

vim /etc/default/ufw

#把DEFAULT_FORWARD_POLICY修改为下面
DEFAULT_FORWARD_POLICY="ACCEPT"

修改docker的默认配置

取消注释DOCKER_OPTS这行,在参数后添加添加-iptables=false

vim /etc/default/docker

#修改文件
DOCKER_OPTS="--dns 8.8.8.8 --dns 8.8.4.4 -iptables=false"

修改/etc/ufw/before.rules

vim /etc/ufw/before.rules

在`*filter`前面添加下面内容
###########我是分割线############
*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING ! -o docker0 -s 172.17.0.0/16 -j MASQUERADE
COMMIT
###########我是分割线############

新增文件/etc/docker/daemon.json

vim /etc/docker/daemon.json

###########我是分割线############
{
"iptables": false
}
###########我是分割线############

重启系统

reboot

docker maven nexus svn 搭建

0. 准备工作

需要一个 image curiousby/centos-ssh-root-java-tomcat-maven-nexus:original

1. 运行该 镜像

Java代码

docker run -d -p 8080:8080   -p 8081:8081  -v /docker/nexus/data/:/usr/local/nexus/sonatype-work -v /docker/tomcat2/logs/:/usr/local/tomcat/logs  -v /docker/maven/repos/:/docker/maven/repos/ curiousby/centos-ssh-root-java-tomcat-maven-nexus:original   

2. 进入该镜像

Java代码

docker exec -it f7f bash  

3. 使用 yum 命令安装 svn

Java代码

yum install -y subversion  

Java代码

mkdir -p /data/svn/    
svnadmin create /data/svn/repo    
修改配置    
vim /data/svn/repo/conf/svnserve.conf    

[general]    
anon-access=none #匿名访问的权限,可以是read,write,none,默认为read    
auth-access=write #使授权用户有写权限     
password-db=passwd #密码数据库的路径     
authz-db=authz #访问控制文件     
realm=/data/svn/repo #认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字     

vim /data/svn/repo/conf/passwd    
[users]    
baoyou=123456    

vim /data/svn/repo/conf/authz    
[/]    
baoyou = rw    
启动    
ps -ef|grep svn     
svnserve -d -r /data/svn/repo  --listen-port=3690      

4. 提交镜像

Java代码

docker commit  f7f  curiousby/centos-ssh-root-java-tomcat-maven-nexus-svn:original  

5. 启动运行镜像

Java代码

docker run -d -p 8080:8080  -p 3690:3690  -p 8081:8081  -v  /docker/svn/data:/data/svn/ -v /docker/nexus/data/:/usr/local/nexus/sonatype-work -v /docker/tomcat/server/:/usr/local/tomcat/webapps -v /docker/tomcat/logs/:/usr/local/tomcat/logs  -v /docker/maven/repos/:/docker/maven/repos/ curiousby/centos-ssh-root-java-tomcat-maven-nexus-svn:original   

6. 进入镜像打开 svn 访问权限

Java代码

svnadmin create /data/svn/repo  
svnserve -d -r /data/svn/repo  --listen-port=3690  

7. 测试

未分类

未分类

未分类

未分类

docker使用笔记

部署公司信息安全平台包含了乌云知识库、NESSUS、AWVS11、巡风资产扫描系统、CTFd、XSS平台,对巡风信息安全平台巡风、CTFd、漏洞靶机均采用docker运行,用到的命令记录下来。

0x01 在线安装docker

//Docker 安装
$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9 
$ sudo bash -c "echo deb https://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list" 
sudo apt-get update 
sudo apt-get install lxc-docker 
sudo docker -v

0x02 拉取部署巡风

//巡风github 
https://github.com/ysrc/xunfeng/blob/master/docs/install/Docker.md

//拉取巡风Docker镜像
$ docker pull ysrc/xunfeng
//速度比较快
https://www.daocloud.io/mirror#accelerator-doc
//更新Docker镜像仓库地址到国内源
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://93cd7dbb.m.daocloud.io
拉取完后:
创建启动容器
docker run -d -p 8000:80 -v /opt/data:/data ysrc/xunfeng:latest

//巡风Docker 镜像信息
类型  用户名 密码
Web账号   admin   xunfeng321
mongodb 数据库 scan    scanlol66
mongodb 端口  27017   
巡风物理路径  /opt/xunfeng    
MASSCAN 路径  /opt/xunfeng/masscan/linux_64/masscan   

0x03 快速搭建各种漏洞环境

//拉取s2-052镜像:
docker pull medicean/vulapps:s_struts2_s2-052
//启动:
docker run -d -p 80:8080 medicean/vulapps:s_struts2_s2-052

//拉取dvwa镜像
docker pull vulnerables/web-dvwa
//启动
docker run --rm -it -p 8081:80 vulnerables/web-dvwa

0x04 启动信息安全中心容器

启动信息安全中心容器

docker run -itd -p80:80 20495bb5bcec /bin/bash
进入信息安全中心容器
docker exec -it b9fdbfa12be7 /bin/bash  进入容器打开一个sh
执行:
mysql启动
service mysqld start
apache启动
service httpd start
访问IP地址即可显示信息安全中心平台

启动巡风容器
docker run -itd -p8000:80 c91fd1a54b93 /bin/bash

0x04 docker基础命令

docker images  查看镜像
docker ps      查看正在运行的镜像
docker ps -a   显示所有的容器
docker rmi ID  停止一个容器后,删除这个镜像
docker info    查看docker信息
docker ps –l   显示最后一次创建的container,包括未运行的
docker pull ${IMAGE} 安装镜像
docker images --no-trunc 显示已经安装镜像的详细内容
docker stop ${CID} 停止指定容器
docker stop 
docker ps -q 停止所有正在运行的容器
docker rm ${CID} 删除指定容器
docker rm -f $(docker ps -a | grep Exit | awk '{ print $1 }') 删除所有退出的容器
docker rm $(docker ps -aq) 删除所有的容器
docker attach ${CID} 
进入容器docker exec -it ${CID} bash 进入容器打开一个shell
docker ps | grep wildfly | awk '{print $1}' 通过正则表达式查找容器的镜像ID
docker inspect ID 可以使用docker inspect来查看该容器的详细信息。
docker exec -it 775c7c9ee1e1 /bin/bash     使用docker exec进入运行Docker容器
docker commit [container-id] custom/centos_httpd 把所做的改变提交到一个新的容器:容器成功提交后,执行 docker images ,会看到刚才提交的容器
删除旧容器:
docker rm [container-id]
删除旧镜像:
docker rmi [image-id]
docker rmi [image-name][:image-tag]

0x05 docker打包迁移镜像

docker打包迁移镜像
[root@oegw1 soft]# docker save  8236fe4c8304 > /root/srcwww.img  
[root@oegw1 soft]# scp postgres.img 192.168.157.134:/opt/soft/  
Address 192.168.157.134 maps to localhost, but this does not map back to the address - POSSIBLE BREAK-IN ATTEMPT!  
[email protected]'s password:   
postgres.img                        
[root@oegw2 soft]# docker load < postgres.img  
[root@oegw2 soft]# docker images  
[root@oegw2 soft]# docker tag eb9a804ae885 postgres:postgres  
[root@oegw2 soft]# docker images

0x06 Docker镜像导入导出

导出容器快照到本地文件
$ sudo docker ps -a
$ sudo docker export 7691a814370e > ubuntu.tar
导入容器快照docker import
从容器快照文件中再导入为镜像
$ cat ubuntu.tar | sudo docker import - test/ubuntu:v1.0
$ sudo docker images
拷被完成后启动容器
docker run -itd -p80:80 20495bb5bcec /bin/bash

0x07 效果图

未分类

使用InfluxDB+cAdvisor+Grafana配置Docker监控

文档来源

  • 文档来源:How to setup Docker Monitoring
  • 由garyond翻译、校正及整理

Docker监控简介

我们提供的Docker主机和容器越来越多,对Docker服务器和容器的监控越来越必要。本文将引导你了解如何通过多个不同组件的配置和协作,以实现Docker监控。

Docker监控组件

首先, 我们假设在您的主机上已经安装、配置和运行Docker Engine。请确保您可以通过Web浏览器在本地或者通过网络IP连接到Docker主机。以下我们将详细介绍如何创建我们的Docker监控方案。

  • cAdvisor: Google开源的用于监控基础设施应用的工具,它是一个强大的监控工具,不需要任何配置就可以通过运行在Docker主机上的容器来监控Docker容器,而且可以监控Docker主机。更多详细操作和配置选项可以查看Github上的cAdvisor项目文档。

  • influxDB: 它是一个分布式时间序列数据库。cAdvisor仅仅显示实时信息,但是不存储监视数据。因此,我们需要提供时序数据库用于存储cAdvisor组件所提供的监控信息,以便显示除实时信息之外的时序数据。

  • Grafana: Grafana可视化展示平台允许我们可视化地展示监控信息。它允许我们对influxDB进行查询,并通过强大的图表功能进行可视化展示。

本文配置组件版本信息如下:

  • InfluxDB: V 1.0.0
  • cAdvisior: V 0.24.1
  • Grafana: V 4.0.2

Docker监控安装与配置

下面,我们将根据上述的Docker监控组件进行安装和配置,形成统一的Docker监控平台。

我们将首先先安装influxDB, 以便于它能够与cAdvisor进行协作。

1. 安装influxDB

下载influxDB镜像

docker pull tutum/influxdb

运行influxdb容器

docker run -d 
   -p 8083:8083 
   -p 8086:8086 
   --expose 8090 
   --expose 8099 
   --name influxsrv 
   tutum/influxdb

influxdb容器运行成功后,通过Web浏览器访问http://docker-host-ip:8083访问influxdb后台管理,并登录后台管理系统(默认用户名:root, 默认密码:root)。

未分类

influxdb_connection_settings

2. 创建cAdvisor应用数据库

在登录influxdb后台数据库管理平台后, 创建cAdvisor数据库, 用于存储cAdvisor应用所获取的实时监控数据。在influxDB管理界面中的Querie s输入框中创建数据库和用户:

未分类

create_database
# 创建数据库
create database 'cadvisor'; 

# 创建用户
CREATE USER 'cadvisor' WITH PASSWORD 'cadvisor'

# 用户授权
grant all privileges on 'cadvisor' to 'cadvisor'

# 授予读写权限
grant WRITE on 'cadvisor' to 'cadvisor'
grant READ on 'cadvisor' to 'cadvisor'

3. 运行cAdvisor应用容器并与influxDB容器进行互联

启动cAdvisor容器

docker run 
  --volume=/:/rootfs:ro 
  --volume=/var/run:/var/run:rw 
  --volume=/sys:/sys:ro 
  --volume=/var/lib/docker/:/var/lib/docker:ro 
  -p 8080:8080 
  --detach=true  
  --link influxsrv:influxsrv 
  --name=cadvisor 
  google/cadvisor:latest 
  -storage_driver=influxdb 
  -storage_driver_db=cadvisor 
  -storage_driver_host=influxsrv:8086

cAdvisor应用容器启动成功后,通过Web浏览器访问地址http://docker-host-ip:8080,便可以查看cAdvisor监控工具所收集到的Docker主机和容器的资源统计信息。

未分类

cAdvisor WebUI

4. 运行Grafana可视化平台并与influxDB容器进行互联

docker run -d 
  -p 3000:3000 
  -e INFLUXDB_HOST=localhost 
  -e INFLUXDB_PORT=8086 
  -e INFLUXDB_NAME=cadvisor 
  -e INFLUXDB_USER=root  
  -e INFLUXDB_PASS=root 
  --link influxsrv:influxsrv 
  --name grafana 
  grafana/grafana

5. 登录Grafana管理平台

通过Web浏览器访问地址http://docker-host-ip:3000登录Grafana管理平台。

  • 用户名:admin
  • 密 码:admin

未分类

Grafana_Login

6. 配置Grafana与influxDB数据库连接

(1). 配置Granfana数据源

在Grafana管理平台中,单击“添加数据源”对数据源进行配置。如下图所示。

未分类

Add_Datasource

  • 基本信息

Name:influxdb
Type:influxDB
Default: checked

  • Http settings

Url:http://influxsrv:8086
Access:proxy

  • HTTP Auth

Basic Auth: checked

  • Basic Auth Details

User: admin
Password: admin

  • InfluxDB Details

Database:cadvisor
User:cadvisor
Password:cadvisor

配置完成后, 我们已经建立与influxDB的连接,下面我们将其进行测试。

(2). 添加Dashboard

下面我们将使用Grafana配置我们的第一个Dashboard,并可视化来自cAdvisor的监控数据。

1). 点击“Grafana”图标, 打开Dashboard菜单,选择新建Dashboard;

未分类

New Dashboard

2). 在Dashboard面板中选择相应的组件并拖动到相关的位置;

未分类

Add_Component

3). 点击面板的标题,会弹出相应的选项”view”、”edit”、”Duplicates”、”share”和删除按扭;

未分类

Edit Component

4). 选择”edit”选项,出现相应的配置项,在“Metrics”选项卡中配置相应的数据表和数据源信息;

未分类

Edit_Configure

例如: 配置内存使用率信息

未分类

Edit Memory Usage

在Metric选项卡中, 配置数据表来源为:SELECT mean(“value”) FROM “memory_usage” WHERE $timeFilter GROUP BY time(10s) fill(0), 配置数据源Panel Datasource为:cadvisor;

在Axes选项卡中配置相关的显示单位。

未分类

Config Axies

5). 配置完相关的选项后,点击Dashboard导航栏的保存按钮,便可完成Dashboard的配置。

未分类

Save Config

至此, 所有配置步骤完成, 我们能够看到Grafana显示相关的监控图表信息。

完整PDF文档可以到Linux公社资源站下载:

——————————————分割线——————————————

免费下载地址在 http://linux.linuxidc.com/

用户名与密码都是www.linuxidc.com

具体下载目录在 /2017年资料/11月/7日/使用InfluxDB+cAdvisor+Grafana配置Docker监控/

下载方法见 http://www.linuxidc.com/Linux/2013-07/87684.htm

——————————————分割线——————————————

Docker 给运行中的容器设置端口映射的方法

一、概念

Docker 端口映射即映射容器内应用的服务端口到本机宿主机器。

二、实现

当容器中运行一些网络应用,要让外部访问这些应用时,可以通过 -P 或 -p 参数两种方式来指定端口映射。

1. 随机映射

使用 -P 参数时,Docker 会随机映射一个端口到内部容器开放的网络端口,如下开启一个 nginx 服务:

$ docker run -d -P nginx
e93349d539119dc48dc841e117f6388d6afa6a6065b75a5b4aedaf5fb2a051fc
$ 
$ docker ps 
CONTAINER ID    IMAGE        COMMAND         CREATED       STATUS       PORTS          NAMES
e93349d53911    nginx        "nginx -g 'daemon ..."  11 seconds ago   Up 9 seconds    0.0.0.0:32769->80/tcp  zen_kirch

使用 docker ps 看到,本地主机的 32769 端口被映射到了容器的 80 端口,这时我们通过本机浏览器访问 http://localhost:32769 就会出现 nginx 欢迎页面。

2. 指定端口

使用 -p 参数时,可以指定要映射的端口,并且在一个指定的端口上只可以绑定一个容器。支持的格式有:

  • IP:HostPort:ContainerPort
  • IP:ContainerPort
  • HostPort:ContainerPort

下面开启一个 nginx 服务,将本机 8080 端口映射到容器的 80 端口:

$ docker run -d -p 8080:80 nginx
23e725098712d061a1382f33d6fe54da23ae37597a62f8debdd3731b5f9cc4b9
$ 
$ docker ps
CONTAINER ID    IMAGE        COMMAND         CREATED       STATUS       PORTS          NAMES
23e725098712    nginx        "nginx -g 'daemon ..."  8 seconds ago    Up 6 seconds    0.0.0.0:8080->80/tcp  frosty_ptolemy

使用 docker ps 看到,本地主机的 8080 端口被映射到了容器的 80 端口,这时我们通过本机浏览器访问 http://localhost:8080 就会出现 nginx 欢迎页面。

三、查看映射端口

使用 docker port 命令来查看当前映射的端口配置,也可以查看到绑定的地址。命令格式如下:

$ docker port CONTAINER [PRIVATE_PORT[/PROTO]]

容器有自己的内部网络和 IP 地址,可以使用 docker inspect + 容器ID 获取容器的具体信息。

DOCKER 给运行中的容器添加映射端口

方法1

1、获得容器IP

将container_name 换成实际环境中的容器名

docker inspect `container_name` | grep IPAddress

2、iptable转发端口

将容器的8000端口映射到docker主机的8001端口

代码如下:

iptables -t nat -A  DOCKER -p tcp --dport 8001 -j DNAT --to-destination 172.17.0.19:8000

方法2

  • 提交一个运行中的容器为镜像
docker commit containerid foo/live
  • 运行镜像并添加端口
docker run -d -p 8000:80 foo/live /bin/bash

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧。

关于docker的虚拟网络划分方案

由于一台主机上不可能只跑一个容器,一台主机上的容器也不可能都是一个功能或者一个用户群体,不同用户群体之间信息的性质不同,对信息安全性的要求不同,因此划分虚拟网络的需求的客观的。划分虚拟网络的方法有很多,本文将提出划分docker虚拟网络的一个方案,即使用Docker的macvlan为容器提供桥接网络及跨主机通讯来划分网络。

macvlan的原理是在宿主机物理网卡上虚拟出多个子网卡,通过不同的MAC地址在数据链路层(Data Link Layer)进行网络数据转发的,它是比较新的网络虚拟化技术,需要较新的内核支持(Linux kernel v3.9–3.19 and 4.0+)。

使用mvcvlan

docker network create -d macvlan 
--subnet=172.17.0.0/24 
--gateway=172.17.0.1  
-o parent=eth0 mcv

首先,需要创建一个macvlan网络

然后指定要桥接的网络地址此处填docker0的IP地址,docker0的IP地址可以通过ifconfig进行查询。

网关地址与网络地址应该相互匹配

设置要在宿主机的哪块网卡上建立虚拟子网卡,这里我选择的是eth0,给它编号为mcv,方便之后使用

docker  run --net=mcv --ip=101.132.161.25 -itd alpine /bin/sh
docker  run --net=mcv --ip=101.132.161.67 -itd alpine /bin/sh

运行容器,指定刚建好的macvlan网络,并指定IP地址

之后通过docker attach 命令进入容器内部进行ping命令,这一轮操作就算完成了。

提示:创建第二块子网卡时可以将eth0改成eth0.1,将网桥修改为172.17.0.2

结果展示:

(注:101.132.161.67和101.132.161.25均在mcv网卡下,101.132.161.50在mcv1网卡下)

未分类

未分类

这样虚拟网络划分就完成了。

Docker Register 安装

  • docker pull registry

  • docker run -d -v /opt/registry:/var/lib/registry -p 5000:5000 –restart=always –name registry registry:2

  • docker images 查看 register 的id

docker inspect id,发现/var/lib/registry 是放镜像的地方,用-v导出来。

  • 访问ip:5000/v2/xxx/tags/list,其中xx是镜像属性

  • push 到私有Register

step1——找到本地镜像的ID:docker images

step2——登陆Hub:docker login –username=username –password=password –email=email

step3——tag:docker tag /:

​ docker tag hello-world:latest localhost:5000/hello-mine:latest

step4——push镜像:docker push /

  • https修改

修改 /etc/sysconfig/docker

INSECURE_REGISTRY=’–insecure-registry 10.0.13.64:5000’

重启docker服务,服务连接正常。

systemctl restart docker.service

Ubuntu下使用docker部署WordPress

上期docker使用教程

http://www.jianshu.com/p/46c7bed70f75

感觉中了docker的毒,简直神器,这次带来部署WordPress的教程

一、pull MySQL镜像

sudo docker pull mysql

二、运行MySQL

docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql

三、pull WordPress镜像

sudo docker pull wordpress

四、运行WordPress

sudo docker run --name wordpress --link mysql:mysql -p 80:80 -d wordpress

五、浏览器访问

是不是很熟悉的界面

未分类