转载请标明出处:
原文首发于: http://www.zhangruibin.com
本文出自 RebornChang的博客
docker
docker 的安装
docker知识体系
使用vagrant
使用vagrant可以有效的管理配置服务,通过定制vagrantFile
来实现多机统一部署。
默认配了ssh
免密连接并且默认不是root
用户。
初始化文件
$ vagrant init centos/7
启动
$ vagrant up
进入服务
$ vagrant ssh
查看状态
$ vagrant status
关机
$ vagrant half
删除
$ vagrant destroy
安装docker
红帽系服务器先做清理工作,如果已经有安装过的先卸载,避免后续错误。
$ sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine
安装依赖包
$ sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
添加docker稳定版本源
$ sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
安装docker最新版
$ sudo yum install docker-ce -y
启动docker服务
$ sudo systemctl start docker
跑个hello world
验证docker是否可用。
$ sudo docker run hello-world
docker的简单使用
查询镜像
docker search centos7
查询结果如下
下载镜像
docker pull ansible/centos7-ansible
运行镜像
docker run -ti ansible/centos7-ansible
修改默认镜像
进入到镜像中cd 到根目录中创建一个app的文件夹
cd /
mkdir app
退出镜像
exit
查询刚运行的镜像(修改退出状态的镜像)
docker ps -l
假设查询到的镜像id为:5a9e468a19f6
获取到刚运行的id增加TAG保存到本地
查询刚才运行镜像的详细信息:
检查运行中的镜像
$docker inspect 5a9e468a19f6
假设使用docker ps 查询到的id为 5a9e468a19f6
参数:-l 最后一个
-a 所有运行过的
则:
docker commit 5a9e468a19f6 rebornchang/centos7:v2
此时查询本地docker镜像发现会多出来rebornchang/centos7 版本为v2
查询命令
docker images
将自己修改过的docker镜像上传到自己的docker仓库
首先注册自己的docker club账号
注册地址:https://cloud.docker.com/
创建仓库
例如博主注册的账号名字是rebornchang,创建了一个仓库叫centos7,公开的。
创建了仓库之后在安装了docker的主机上执行命令:
查看镜像:
docker images
查看完镜像如下图所示:
可以看到里面有一个REPOSITORY:rebornchang/centos7 ,TAG为v4的。
此时我们登录docker仓库;
docker login
然后对应输入账号密码。就将docker远程账号和本地关联起来了
也可以修改指定镜像的tag
$docker tag rebornchang/centos7:v4 rebornchang/centos7:latest
有时候镜像的REPOSITORY及TAG为,查到这个镜像的ID假定为1a2w3e4r就可以用这个命令修改
$docker tag 1a2w3e4r rebornchang/centos7:latest
注意:镜像的REPOSITORY的名字就是远程docker仓库的名字,Tag相当于一个独立的版本标签,Tag不要相同。
上传本地镜像至远程仓库
docker push rebornchang/centos7:v4
The push refers to repository [docker.io/rebornchang/centos7]
8a8f10ffd124: Pushed
5a9e468a19f6: Layer already exists
cf4eb7184a66: Layer already exists
596e51307fcb: Layer already exists
7794e20d52b7: Layer already exists
f8c414e271fb: Layer already exists
0d1585b29470: Layer already exists
34e7b85d83e4: Layer already exists
v4: digest: sha256:3d6eae11c751df9dc61d543247d86937420e902705b9c4b37bcf7ee18bfb5d73 size: 1988
此时在网页上查询远程仓库就可以看到推送过来的镜像了:
PS :这篇文章就先到这里,后续还会更新在镜像中搭建自己需要的环境。
PPS:博主本篇文章的前半截是毛博主发给我的,我直接拿来发了,谁让毛博主说等我我说docker的博客呢。