Docker简介
安装Docker
使用yum安装docker:
yum install docker
查看docker安装版本:
docker version
启动docker:
systemctl start docker
查看docker启动状态:
systemctl status docker
配置加速器
DaoCloud 加速器,解决了国内用户访问 Docker Hub 缓慢的问题。DaoCloud 加速器结合国内的 CDN 服务与协议层优化,成倍的提升了下载速度。
DaoCloud官网:https://www.daocloud.io/mirror#accelerator-doc
配置加速器命令:
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://95822026.m.daocloud.io
然后重启docker:
systemctl restart docker
这时重启可能会出现一个错误:
[root@VM_0_2_centos /]# systemctl restart docker
Job for docker.service failed because the control process exited with error code. See “systemctl status docker.service” and “journalctl -xe” for details.
[root@VM_0_2_centos /]#
解决办法:
编辑/etc/docker/daemon.json
vim /etc/docker/daemon.json
daemon.json内容:
{“registry-mirrors”: [“http://95822026.m.daocloud.io”],}
将json中最后的逗号删除,esc 输入 :wq 退出并保存,然后重启docker。
docker镜像管理
docker pull centos//可以下载centos镜像,速度很慢
配置docker加速器(参考 http://blog.csdn.net/xlemonok/article/details/71403534)
vi /etc/docker/daemon.json//加入如下内容
{
“registry-mirrors”: [“https://u6xqvohk.mirror.aliyuncs.com“]
}
说明:这个url为加速器地址,需要自己自行到阿里云申请
配置完加速器,重启docker服务,再次docker pull centos会快很多
docker images 查看本地的镜像
docker search xxx //搜索镜像,其中xxx是关键词
docker tag centos qiang123 //给镜像打标签
[root@XXQ ~]# docker tag centos qiang_centos
[root@XXQ ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos latest d123f4e55e12 13 days ago 197MB
qiang_centos latest d123f4e55e12 13 days ago 197MB
#如果想跟TAG也打上标记
[root@XXQ ~]# docker tag centos qiang_centos1:171104
[root@XXQ ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos latest d123f4e55e12 13 days ago 197MB
qiang_centos1 171104 d123f4e55e12 13 days ago 197MB
qiang_centos latest d123f4e55e12 13 days ago 197MB
docker run -itd centos //把镜像启动为容器,-i表示让容器的标准输入打开,-t表示分配一个伪终端,-d表示后台启动,要把-i -t -d 放到镜像名字前面
docker ps //查看运行的容器,加上-a选项后可以查看所有容器,包括未运行的
docker rmi centos //用来删除指定镜像, 其中后面的参数可以是tag,如果是tag时,实际上是删除该tag。当后面的参数为镜像ID时,则会彻底删除整个镜像,所有标签也会一同删除
注意:docker rmi qiang_centos1 的时候会提示:
Error: No such image: qiang_centos1
因为删除默认会找 qiang_centos1:latest,所以没有,我们要删除此类镜像,需要:
docker rmi qiang_centos1:171104
Docker通过容器创建镜像
docker run启动容器后,可以通过下面命令进入容器
docker exec -it xxxxx bash//其中xxxxx为容器id,这个id可以用docker ps查看,最后面的bash为进入容器后我们要执行的命令,这样就可以打开一个终端
进入到该容器中,我们做一些变更,比如安装一些东西,然后针对这个容器进行创建新的镜像
在容器中执行 :
yum install -y net-tools
然后ctrl d退出容器
注意: 每开启一个容器,宿主机都会对应的创建一个虚拟网卡,这样才能跟宿主机通信
将容器做成镜像:
docker commit -m “change somth” -a “somebody info” container_id new_image_name //container_id通过docker ps -a获取,后面的new_image_name为新镜像名字
例如: docker commit -m “install net-tools” -a “qiangqiang” 2c74d574293f centos_with_nettool 这个命令有点像svn的提交,-m 加一些改动信息,-a 指定作者相关信息 2c74d这一串为容器id,再后面为新镜像的名字
举例:
1、将执行了yum install -y net-tools的容器,保存为镜像
docker commit -m “install net-tools” -a “qiang” 2edf8 centos_with_net
2、查看该镜像:
[root@XXQ ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos_with_net latest d1662210c4b4 4 minutes ago 277MB
centos latest d123f4e55e12 2 weeks ago 197MB
3、启动容器:
docker run -itd centos_with_net
4、根据id进入容器
docker exec -it 5331d bash
5、可以查看,该容器可以直接运行ifconfig命令,无需再安装
Docker使用模板创建镜像
首先去下载一个模板
http://openvz.org/Download/templates/precreated //下载速度不快,我下载了一个centos6的模板centos-6-x86-minimal.tar.gz
导入该镜像的命令为:
cat centos-6-x86-minimal.tar.gz |docker import - centos6
docker images查看导入的镜像
可以运行启动该镜像容器
docker run -itd centos6 bash
docker exec -it 12cab bash
里面有一些配套好的一些命令,可以自行查看
把现有镜像,导出为一个文件:
save -o centos7_with_nettool.tar centos_with_net
我们还可以用该文件恢复本地镜像:
docker load –input centos7_with_nettool.tar 或者
docker load < centos7_with_nettool.tar
docker push image_name //可以把自己的镜像传到dockerhub官方网站上去,但前提是需要先注册一个用户,后续如果有需求再研究