docker初步了解,仅限于了解啊,个人感悟

最近docker技术挺火的,我在安装很多软件的时候都遇到过,所以我利用工作闲余时间学习了解了一下docker技术。

docker是什么?是docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。我说一下我的理解,比如一般我们使用的是windows平台上操作,但是想要运行一个shell脚本,平台不支持怎么办?以前我是按照一个kvm虚拟机,但是他占用我的系统资源太多,有没有一个特别小的软件就可以实现这个功能呢?有,就是docker,类似一个软甲,再下载一个容器,一般在十几M到几十Mshell脚本就可以在容器里面运行。把容器可以想象成一个软件,docker则是容器所需的基础环境。

一开始我使用的是centos6.5docker版本号是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

你可能感兴趣的:(docker)