戳蓝字“CSDN云计算”关注我们哦!
容器这个词,当你第一眼看它或许脑子里是这东西:瓶瓶罐罐、装水、装其他东西的玩意。不管是什么,总的来说,容器给人第一印象就是——“装”。容器技术作为近两年热门的话题,不管是在运维还是开发上,给我们带来了很多方便的地方,节约了不少成本。今天,问答君就为大家带来有关容器的精华问答!
1
Q:一直想用Docker,但是一直又怕影响到服务器上目前的设置,有几个入门的问题:
1.安装Docker后,目前的网站会有影响么?是会当成一个默认的容器么?2.只有一个网卡有外网IP,多个容器可以都用这个网卡对外提供Web服务?
A:默认就可以,至于默认是什么模式没注意。都是同卡,对现有服务没有任何影响。Docker用虚拟网卡代理自己的所有容器,容器内暴露的端口映射物理机端口即可。比如,容器内tomcat开在8080,容器启动的时候18080:8080,则物理机的18080端口会被Docker的代理转发到容器8080。也就是多Web需要占用Docker个物理机端口。
Q:执行docker ps时报错:
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.26/containers/json?all=1: dial unix /var/run/docker.sock: connect: permission denied,如何解决?
A:这是权限的问题,执行时添加sudo,例:sudo docker ps ,只要是非root用户在执行docker时都要添加sudo。
Q:启动MySQL设置了参数 --restart=always。前些天,MySQL服务可以正常使用。现在不能连接了。查看MySQL容器,status一直是 Restarting (1) 20 seconds ago。当20s走到1分钟时, ports会显示1秒中0.0.0.0:3306-->3306。然后就又进入重启等待过程。不知道是哪里导致了这个问题?
$ sudo docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c59ba37a2508 mysql:5.6 "docker-entrypoint.s…" 4 weeks ago Restarting (1) 20 seconds ago mysql5
A:通常就是由于修改了一些MySQL的配置文件,或者可能是一些其他的配置,所以导致容器无法启动。用docker logs [容器id] 查看确认一下。如果是需要修改文件的话,需要在主机下重新写一个配置文件,然后复制到容器相对应目录下的文件做替换,一般是:
cp x.cnf /data/docker/volumes/[容器id]/_data /xxx/xxx
Q:Docker容器内ifconfig修改IP后无法上网,例如172.17.0.2改为172.17.0.3,无法上网,掩码和广播都改过来了,但还是不行?
A:如果是通过NAT模式启动的话, 容器内的网络会走宿主机,如果直接更改IP地址,因为不是docker deamon分配的,肯定走不到物理机的网卡,也就会出现无法上网的现象。如果改用bridge模式,是应该可以直接更改IP的。
Q:Docker给每一个启动的Container指定一个IP, 这个如何做? pipework 貌似只能在Ubuntu下有效,求CentOS下的用法?
A:Centos6.5的内核已经支持network namespace, 但如果安装的iproute版本过低,不支持ip nets 命令。所以首先要将iproute升级 至 iproute-2.6.32-130.el6ost.netns.2.x86_64,方法如下:
# yum install http://rdo.fedorapeople.org/rdo-release.rpm
# yum install iproute
然后,给每个Container分配一个IP,宿主机配网桥,如:
/etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE='eth1'
ONBOOT=yes
BRIDGE=br1
/etc/sysconfig/network-scripts/ifcfg-br1
DEVICE='br1'
TYPE=Bridge
BOOTPROTO=staticONBOOT=yesIPADDR='xxx'
NETMASK='xxx'
GATEWAY='xxx'
/etc/init.d/network restart
使用例子:
TESTID=$(docker run -d bangli/centos-sshd)
./pipework br1 $TESTID 10.10.1.10/24@10.0.0.1
其中,子网掩码和默认网关需要根据实际情况指定。
小伙伴们冲鸭,后台留言区等着你!
关于容器方面的知识还有哪些问题?快来后台留言,我们可以请来专家详细为您解答;
后台留言告诉我,您对哪方面问题感兴趣,好让我们可以根据您提供的话题,有针对性的进行问答;
当然,我们也为大家提供了展示自己的平台,欢迎大家搜集更多问答,投稿给我们吧!
---------------- 完 --------------
1.微信群:
添加小编微信:color_ld,备注“进群+姓名+公司职位”即可,加入【云计算学习交流群】,和志同道合的朋友们共同打卡学习!
2.征稿:
投稿邮箱:liudan@csdn.net;微信号:color_ld。请备注投稿+姓名+公司职位。
推荐阅读
2018,这一年的腾讯优图,我们总结一下!
有问有答 | AWS使用精华问答,带您开启 AWS 上的云计算之旅!
程序员的年度未解之谜:加班背锅的是我,得优秀员工的却是他
特斯拉“撞死”机器人,是炒作还是事故?
买不到回家的票,都是“抢票加速包”惹的祸?
君士坦丁堡硬分叉姗姗来迟,以太坊2.0还要等多久?
刚刚!程序员集体荣获2个冠军,这份2018 IT报告还说这些!
点击“阅读原文”,打开 CSDN App 阅读更贴心!