yum install -y docker(安装docker)
systemctl start docker(启动docker服务)
systemctl enable docker(启用挂载点)
ip a
docker run -d -p 8016:80 alexwhen/docker-2048(有问题多输入几次)
(运行镜像生成容器)
docker ps --all(查看所有的容器)
http://192.168.150.162:8016/
ip netns add netns1(创建一个名为netns1的network namespace)
ip netns
ip netns exec netns1 /bin/bash(使用ip netns exec命令进入 network namespace)
ip a
此时发现都没有了,输入exit退出,就有了
ip a
ip link add veth0 type veth peer name veth1(veth0是网卡名字)(使用veth pair创建2张虚拟网卡;分别加到ns0 ns1 wetowrk namespace)
ip a
ip netns exec netns1 ip a
ip link set veth1 netns netns1
将veth1放到netns1
发现veth1没有了
ip netns exec netns1 ip a
看到veth1
ip netns exec netns1 /bin/bash
ip a
ifconfig veth1 10.1.1.1/24 up(给veth1配置一个地址)
ip a
exit
ip a
ifconfig veth0 10.1.1.2/24 up(给veth0配置一个地址)
ip a
这一对端口分到两个空间,还是可以通信
构建容器
docker pull centos:centos7.5.1804
下载镜像
docker run --name test1 -itd --privileged=true centos:centos7.5.1804 /usr/sbin/init(运行镜像生成容器)
centos:centos7.5.1804镜像名字是test1,–privileged=true 具有root的特权
docker ps(查看启动的容器)
docker exec -it test1 /bin/bash
进入容器里面
yum -y install initscripts
yum install httpd
systemctl start httpd(启动httpd服务)
yum -y install net-tools(安装这个工具)
netstat -tlnup
ip a
exit
exit
ip a
curl http://172.17.0.3/(可以访问web服务器)
docker exec -it test1 /bin/bash(进入容器)
ip a
echo “你好,欢迎你的到来” > /var/www/html/index.html(httpd的默认页面)
exit
curl 172.17.0.3
让在外面可以访问服务器
做成镜像来启动服务器
docker ps(查看启动的容器)
docker images(查看镜像)
docker commit -m “a httpd image” -a=“tong” test1 tong/httpserver(把容器内容提交到镜像,-m是描述,-a是作者,基于test1做的)
docker inspect tong/httpserver(获取镜像的元数据)
docker run -d --name ‘httpsss’ -p 8080:80 tong/httpserver(将配置文件运行镜像生成容器)
docker exec -it httpsss /bin/bash(进入容器)
ip a
systemctl start httpd(启动服务)
systemctl status httpd(检查服务)