标签:docker

发表于
很不凑巧的,这个星期都在docker与systemd之间战斗啊。 实体机是CentOS7,所以是Systemd管Docker。 而虚机中则变成Docker管systemd了。 两个软件互相打架,真是受不了 说说事情的来由,oneapm搞活动,想拿他家那个xbox,因为是cloudinsight,所以不需要开放外网端口,用lxc重了,决定趁这个机会上到centos7试试。 于是乎用centos7+最新版的docker,首先在容器内安装oneapm的agent有些问题,需要d-bus权限。 所以容器必须用这样的方式启动: docker run --privileged -d -p 10000:80 centos:last /sbin/init 这就是大混战的开始啊。 docker启动提了权,然后虚机再boot一版systemd。导致进程中充斥着systemd啊 这样装到第25台虚机的时候systemd再也无法容纳了。 只能降级CentOS7到6,然后再跑,这样跑的是个假的systemd,就是fakesystemd,这样容器跑到单机284个也没问题。 所以在真正的生产环境中,还是Centos6吧,这个战争不结束,就没办法大规模应用。除非是不提权的用法。...
发表于
容器中已经安装好了apache httpd yum -y install httpd 那么如何从容器外启动apache呢? 用exec即可 # docker ps -aq d464910e61c2 # docker exec d464910e61c2 /bin/bash -c "/usr/sbin/apachectl start" 注意上面的用法,bash -c 后面可以跟单引号,或者双引号,里面是实际执行的命令。...
发表于
在Centos7的docker里装好了httpd,运行报错: systemctl start httpd.service Failed to get D-Bus connection: Operation not permitted 真无语啊,必须提权才可以: docker run --privileged -d -p 10080:80 centos /sbin/init 记下来,备查。...
发表于
其实一直用得docker应该叫做lxc,只不过是套了一个docker的外壳。 这回是真的升级到centos7,docker的跑法也变为两种,一种是lxc引擎,一种是docker的引擎。lxc很熟悉了,但是docker自己的反而不太熟悉,哈哈,倒错吧。 下面说说docker自己引擎的用法,安装前务必确认centos7的selinux已经关掉: 安装: yum install -y docker 启动: systemctl start docker pull个镜像: docker pull centos:latest 跑个docker实例: docker run --privileged -d -p 10080:80 docker.io/centos /sbin/init 进入这个docker实例: docker ps -aq 4e29e10a5110 docker exec 4e29e10a5110 -it /bin/bash...
发表于
Macvlan and Ipvlan Network Drivers Getting Started The Macvlan and Ipvlan drivers are currently in experimental mode in order to incubate Docker users use cases and vet the implementation to ensure a hardened, production ready driver in a future release. Libnetwork now gives users total control over both IPv4 and...
发表于
Graphite的安装其实是比较复杂的,我们只是使用者,所以用最简单的方法来安装它,把焦点关注在如何配置和使用好它上。 Docker大法: docker run \ --name graphite\ --restart=always\ -p 80:80\ -p 2003-2004:2003-2004\ -p 2023-2024:2023-2024\ -p 8125:8125/udp\ -p 8126:8126\ -d hopsoft/graphite-statsd 注意上面端口: 80是nginx 2003是carbon 2004是carbon aggregator 2023是carbon pickle 2024是carbon aggregator pickle 8125是statsd 8126是statsd admin 集大成版啊,不愧是在github上有400多颗星的软件啊,自带了statsd,收集软件都有了。 缺省用户: username: root...
发表于
lxc类型的容器如何使用Open vSwitch做网络底层呢? 假设底层是ovs, 网桥是ovsbr0,容器已经启动,docker的底层是lxc 查看容器: ps axww --forest 找到-f 后面的配置文件: /var/lib/docker/containers/19ab1b6edd1635159095f3a59f4dab0c1e71f6512282156620fd532ca6446db8/config.lxc 编辑修改网络部分: # vi /var/lib/docker/containers/ae5bfe8ac3567d545c9a0dc64c30cbbdd5ae67466be0b44bd462a4815fbee11d lxc.network.type = veth lxc.network.flags = up lxc.network.link = lxcbr0 并增加以下三行,注意ovs port name: lxc.network.script.up = /etc/network/if-up.d/...
发表于
首先,声明一下,https://getcarina.com ,是无法运行ikev2类型的的容器的,因为权限不够,无法拿到建立vpn所需的权限。 这篇文章只能在自己的vps上搭。 步骤如下: 1、拉回来镜像,ikev2-vpn-server docker pull gaomd/ikev2-vpn-server 2、启动服务端,注意--privileged参数,这个是必须的 docker run -d --name ikev2-vpn-server --privileged -p 500:500/udp -p 4500:4500/udp gaomd/ikev2-vpn-server 搞定,只需要四步即可完成相对比较难搞的ikev2的安装, 如果你要使用ikev2,只需要再往docker 容器里面传入相对应的参数,比如我想制作ios8的配置文件,给iPhone 用户使用,哪么我只需要传入 3、生成iphone客户端配置文件 docker run...
发表于
容器内如何运行GUI的程序呢? 一般情况下会安装tiger-vncserver和xterm,但是这个界面太简陋了。窗口也有很大问题,无标题。那么,如何在容器内运行一个完整的firefox呢? 首先安装x-windows: yum install -y tigervnc-server \ xorg-x11-server-utils \ xorg-x11-server-Xvfb \ xorg-x11-fonts-Type1 \ xorg-x11-fonts-misc \ xorg-x11-fonts-75dpi \ xorg-x11-fonts-100dpi \ xterm \ gnome-session 再安装: firefox yum install -y firefox spice-xpi 重新生成dbus uuid,这一步是必须的: /bin/dbus-uuidgen --ensure 生成密码,注意,我们这里是以root身份为例: vpncpasswd 编辑xstartup文件: # vi /root/.vnc/xstartup #!/bin/sh [ -r /etc/sysconfig/i18n ] &&...
发表于
转自:https://blog.flameeyes.eu/2010/09/linux-containers-and-networking 以下只说明了veth和macvlan两种模式,phy和vlan不涉及。 Linux Containers and Networking So, at the moment I start writing this (and that’s unlikely to be the time I actually post this, given that I see now it could use some drawings) it’s early in the morning...
发表于
我们启动docker容器后,如果要固定容器的IP,可能会用到pipwork这个脚本,下面简单说一下过程: 网络环境如下,物理机的eth0口接上端交换机,本地起br0网桥连接到eth0: 运行docker,用pipwork固定ip: docker run -d -name=container_name container_image pipework br0 container_name ip/prefix_len@gateway 其实pipework是建立了一个netns,然后手动生成了一块虚拟网卡,然后在netns空间内设置IP,具体如下: 先起个随机名字、不重复的一块网卡: GUEST_IFNAME=ph$NSPID$eth1 把这块网卡挂接到系统的Bridge br0上,并且指定netns命名空间 ip link add link br0 dev $GUEST_IFNAME type macvlan mode...
发表于
Docker 要使用 Btrfs 文件系统,我们先了解一下 Btrfs 的一些用法: # mkfs.btrfs -f -L testbtrfs /dev/sdd1 /dev/sdd2 /dev/sdd3 -f 是强行覆盖已有分区,上面命令建立了一个 testbtrfs 卷,是个3节点的磁盘阵列,其中 RAID0 保存数据, RAID1 保存 metadata 。注意,这个阵列的 RAID0 会把数据按序分配到所有节点上,而 RAID1 有点特别,metadata 会生成2份,按照 round-robin 的方式决定把两份数据到所有节点的某两个节点上。 # blkid /dev/sdd* /dev/sdd: UUID="e9b11649" UUID_...
发表于
Docker 使用 Btrfs 文件系统的好处 元数据镜像,提升数据可用性 在任何储存系统确保元数据的完整性极为重要,因为其中包含重要的信息,如档案架构、名称、登入权限以及档案位置。 Btrfs 文件系统将两份元数据储存于一个储存空间,让档案即便在硬盘损坏或坏轨的状况下,亦能进行数据还原。 自动数据侦测和修复 传统的储存系统可能没有错误回报机制,导致数据损毁时无法获得任何警告或错误通知。为了避免这类的问题,Btrfs 文件系统提供数据以及元数据的总和检查码,在读取数据的过程中进行验证。一旦文件系统发现错误比对,将自动修复错误的数据,损毁的档案也会被回报并留下记录。 快照与数据保护 Btrfs 文件系统提供强大的快照功能,让你在任意时间点复制整个共享文件夹。因此,若因人为疏失导致数据库毁损,你可以在短时间内利用快照还原资料。...
发表于
Docker 缺省的文件系统是 Devicemapper 。那么怎么用到先进的 Btrfs 呢? 准备: 一、安装btrfs的套件: yum install -y btrfs-progs mprobe btrfs echo modprobe btrfs >> /etc/rc.modules chmod +x /etc/rc.modules 二、如果系统已经安装好,分区已经固定,那就需要用虚拟的方法做出 btrfs 分区。 mkdir /img dd if=/dev/zero of=/img/btrfs.img bs=1024 count=10000000 mkfs.btrfs...
发表于
Daily Dilemma Recently I’ve been finding myself in various conversations about Docker and Linux Containers (LXC). Most of the time the conversations eventually end up with one and the same question and that is whether we should run containers in production. Initially this post had a few paragraphs...
发表于
ovs下有Bridge和Port,如何对应到Linux的网卡中呢? 看下图: 如图:ovs中有一个Bridge br0,绑定了host1的物理网卡eth0 纯手工过程: 先停掉网络,设置eth0为混杂模式: # service network stop # ifconfig eth0 0 ovs增加网桥: # ovs-vsctl add-br br0 ovs网桥增加端口 # ovs-vsctl add-port br0 eth0 配置Linux网卡中的网桥和端口: # vi /etc/sysconfig/network-scripts/ifcfg-br0 ----------- DEVICE=br0 DEVICETYPE=ovs TYPE=OVSBridge BOOTPROTO=static NM_CONTROLLED=yes IPV6INIT=no PEERDNS=no ONBOOT=yes IPADDR=...
发表于
场景见上图,需要仔细理解下: 两台物理机器host1和host2,网口eth0通过交换机互联。host1的ip是192.168.122.43,host2的ip是192.168.122.189。 两台机器都起了ovs,在ovs的Bridge(br0)上有两个端口,br0和gre0,gre0通过GRE隧道通联。 两台机器也都起了Linux的Bridge(docker0),注意,ovs的Bridge(br0)和linux的Bridge(docker0),两个不同。 docker平台跑在linux自带的Bridge(docker0)上,docker0挂接ovs的Bridge(br0)的端口br0,相当于两个软交换机串联起来。 可以直接把docker运行在ovs的Bridge(br0)上,那就是另外一篇文章了。本篇这么搞是为了docker的架构通用性,毕竟普通场合docker一般都跑在linux自带的网桥上,至于下面再串接什么,接不接ovs,都可以再改,至少上层结构是通用的。 Container分配的地址段是172.16.42.xxx,通过gre隧道,就可以达到不同主机的虚机间可以跨主机互相通讯的效果。 在host1和host2上运行脚本,...
发表于
不花一分钱,搭建一个完全免费的ghost博客 V2EX上有求 markdown 博客的帖子,那我们就搭一个看看。 到 https://getcarina.com 去注册一个账号,然后激活它,这家是rackspace支持的,财大气粗啊: 然后登陆,会要求你输入一个手机号,没问题,其实一个手机号可以重复使用N次的: 输入手机验证码后正式进去,界面超级简陋,没关系,点击增加一个cluster: 输入cluster的名称,随便起名即可,不用选autoscale,没必要自动伸缩: 然后系统建立cluster,会花一点时间,这个过程有可能失败,不要紧,删掉cluser,重建即可: 建好后STATUS变成了绿色的active: 点击下面的按钮Get access,会有一个Download file,点击下载,会 下载回来一个zip压缩包。 再下载Docker的命令行软件: wget https://get.docker.com/builds/Windows/x86_64/...
发表于
不花一分钱,搭建一个完全免费的wordpress博客 V2EX上有求 python3 部署服务器的帖子,python3+flask+mysql,那我们就搭一个看看。 到 https://getcarina.com 去注册一个账号,然后激活它,这家是rackspace支持的,财大气粗啊: 然后登陆,会要求你输入一个手机号,没问题,其实一个手机号可以重复使用N次的: 输入手机验证码后正式进去,界面超级简陋,没关系,点击增加一个cluster: 输入cluster的名称,随便起名即可,不用选autoscale,没必要自动伸缩: 然后系统建立cluster,会花一点时间,这个过程有可能失败,不要紧,删掉cluser,重建即可: 建好后STATUS变成了绿色的active: 点击下面的按钮Get access,会有一个Download file,点击下载,会 下载回来一个zip压缩包。 再下载Docker的命令行软件: wget https://get.docker.com/builds/...
发表于
不花一分钱,搭建一个完全免费的python3+flask+mysql服务器 V2EX上有求 python3 部署服务器的帖子,python3+flask+mysql,那我们就搭一个看看。 到 https://getcarina.com 去注册一个账号,然后激活它,这家是rackspace支持的,财大气粗啊: 然后登陆,会要求你输入一个手机号,没问题,其实一个手机号可以重复使用N次的: 输入手机验证码后正式进去,界面超级简陋,没关系,点击增加一个cluster: 输入cluster的名称,随便起名即可,不用选autoscale,没必要自动伸缩: 然后系统建立cluster,会花一点时间,这个过程有可能失败,不要紧,删掉cluser,重建即可: 建好后STATUS变成了绿色的active: 点击下面的按钮Get access,会有一个Download file,点击下载,会 下载回来一个zip压缩包。 再下载Docker的命令行软件: wget https://get.docker....