最近docker技术挺火的,我在安装很多软件的时候都遇到过,所以我利用工作闲余时间学习了解了一下docker技术。
docker是什么?是docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。我说一下我的理解,比如一般我们使用的是windows平台上操作,但是想要运行一个shell脚本,平台不支持怎么办?以前我是按照一个kvm虚拟机,但是他占用我的系统资源太多,有没有一个特别小的软件就可以实现这个功能呢?有,就是docker,类似一个软甲,再下载一个容器,一般在十几M到几十M,shell脚本就可以在容器里面运行。把容器可以想象成一个软件,docker则是容器所需的基础环境。
一开始我使用的是centos6.5,docker版本号是1.7,但是一直报错,大家一会可以看看是不是报错信息和我一样,总是不能使用,后台版本改为centos7.4,docker1.13就可以直接使用了,所以新手一定要注意运行环境(我使用的是阿里,其他的可能有问题)。
下面就开始安装吧,yum源大家自己上网找吧,我这里就不提供了,给我大家提供一下镜像链接: https://pan.baidu.com/s/1Q7x0RousEN4OryECL2JVaw 密码: mnzg。
yum install docker-io -y #yum一键安装服务器和客户端
systemctl start docker #启动docker服务器,ps一下看看是否启动成功
docker images #启动成功以后,查看当前可用容器
docker pull centos # 下载docker容器,默认是最新版的centos
docker run centos /bin/echo “hello world” #利用容器运行命令
docker run -i -t centos /bin/bash #-i 交互-t模拟中断,就是通过终端和docker容器进行交互
docker run -d centos /bin/bash 脚本 #在后台运行脚本
docker ps #查看docker后台运行的容器
docker stop ( docker ps显示的CONTAINER ID 或 NAMES) #停止docker容器
举一个例子,通过docker容器运行一个网站
docker pull training/webapp
docker run -d -P training/webapp python app.py
docker ps
在本地运行一个后台网站,并且映射端口到本地,可通过ps查看,并可以访问该端口
错误总结;
我说说我在docker一开始的时候出现的错误。
yum install docker-io -y docker安装错误显示
file /usr/bin/docker from install of docker-io-1.7.1-2.el6.x86_64 conflicts with file from package docker-1.5-5.el6.x86_64
错误原因为docker已经安装了docker,所以要先卸载。
》》docker pull centos:latest 失败 #下载自带容器源库地址
Get https://index.docker.io/v1/repositories/library/centos/images: dial tcp 54.236.81.192:443: connection refused
》》docker pull daocloud.io/library/centos:latest #下载国内容器源库
Error response from daemon: invalid registry endpoint https://daocloud.io/v0/: unable to ping registry endpoint https://daocloud.io/v0/
一开始下载失败,我上网搜索,说是国家防火墙被拦截,于是我就找国内的地址下载,还是失败,有人说要添加cat /etc/docker/daemon.json { "registry-mirrors":["https://registry.docker-cn.com"] },还是不行,后来我吧centos6.5的内核2.6升级到3.10,但是依然出错,所以说版本一定要选对。
进入已启动容器命令
dockername=$1
Did=`docker ps | grep $dockername | awk '{print $1}'`
Pid=`docker inspect --format {{ .State.Pid }} $Did`
nsenter -t $Pid -m -u -n -i -p