之前用了一段时间研究docker的网络配置,遇到很多问题,写个帖子,记录一下搭建的过程。
本文主要介绍:
1、简单安装docker
2、配置网络
3、一些基本的命令
==============================================================================
一、简单安装docker:
首先物理机的环境是ubuntu14.04.2 LTS,ubuntu 3.16.0-30-generic,注意:内核版本太低是装不了docker的。
1、直接apt-get安装docker。
apt-get install docker.io
如果下载缓慢。。。记得配置一个网络比较好的源。网上有很多资源。我试了几个,我这里比较好用的是163的源。
修改/etc/apt/source.list文件,然后将里面改成如下源即可。记得将之前的备份。
deb http://mirrors.163.com/ubuntu/ trusty main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ trusty-security main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ trusty-updates main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ trusty-backports main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ trusty main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ trusty-security main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ trusty-updates main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ trusty-backports main restricted universe multiverse
然后apt-get update 更新源。
2、看看安装是否正常:
docker run hello-world
如果屏幕打印出Hello from Docker!说明运行正常,有时候出错。。。是因为系统时间有问题。。。记得用data -s "2018/8/7 15:00:00"配置一下时间。
3、将镜像安装到docker容器中:
如果网络好的话直接从网上下载镜像。
docker pull ubuntu:14.04
下载太慢的话,考虑一下下载镜像资源,然后在编译一下(在github上有https://github.com/tianon/docker-brew-ubuntu-core/tree/727813ecdf4a3d46bc1fb0bf479cebd76b462fed 不同的镜像,我用的是ubuntu:14.04的镜像。)
将下载好的资源,找到对应的镜像路径编译一下。我是进到资源路径里面(文件路径/trusty 这个目录里面执行的下面命令。)
docker build -t ubuntu:14.04 ./ (./ 是Dockerfile所在的目录)
4、用刚才的镜像,创建一个容器:
docker run -i -t --name=test --net=none ubuntu:14.04 /bin/bash
其中参数:-t 在新容器内指定一个伪终端或终端。
-i 允许对容器内的标准输入进行交互
--name= 给这个容器起个名字
--net= 这里我采用的是无网络配置,为了方便下面配置和物理机一个网段
进去之后,ctrl + p + q可以退出来,然后在用 docker attach test 进入到容器中。
到这里,容器已经正常运行了。
===================================================================================
二、配置网络
注意:主要是配置和物理主机同一个网段,局域网其他主机可直接访问容器。
1、修改默认网桥的配置,/etc/network/interfaces 添加桥接配置,
auto docker0
iface docker0 inet static
address 192.168.1.88
netmask 255.255.255.0
gateway 192.168.1.1
bridge_ports eth0
bridge_stp off
dns-nameservers 8.8.8.8 114.114.114.114
2、修改/etc/default/docker文件,添加
DOCKER_OPTS="-b=docker0"
然后重启网络,ifdown -a && ifup -a 查看网桥是否建立成功,如果不成功,重启电脑可以解决这里的网络问题。
3、重启docker,并配用pipework配置网络 然后进到容器中,发现网络已经配置好了。
service docker start
docker start test
wget https://github.com/jpetazzo/pipework/archive/master.zip
unzip master.zip
cp pipework-master/pipework /usr/bin/
chmod +x /usr/bin/pipework
pipework docker0 test 192.168.1.20/[email protected]
网桥 容器名 想给容器的IP 物理机的IP
docker attach test
=================================================================
三、一些基本命令
docker pull ubuntu:14.04 从网上下载对应的镜像
docker build -t ubuntu:14.04 /目录 解压对应的镜像
docker run -i -t --name=test --net=none ubuntu:14.04 /bin/bash 创建一个容器,以ubuntu:14.04为镜像。名字叫test,采用none的网络方式
docker ps 查看正在运行的容器(加上-a 是查看所有的容器)
docker start CONTAINER_ID 运行指定的容器(ID也可以用name)
docker attach CONTAINER_ID 进到指定的容器里
docker stop CONTAINER_ID 停止一个容器
docker rm CONTAINER_ID 删除一个容器
apt-get install bridge-utils 安装brctl
brctl delbr docker0 删除docker网桥
brctl addbr docker_new0 自定义新的网桥
注意:登陆到容器中输入exit直接关闭容器,需要摁ctrl + p + q 退出容器并不关闭。