这篇文章原文是我2016年10月份写的,当时在研究docker,上周六不经意翻了出来,由于3月换工作,新环境比较忙,没时间写些东西,所以先把之前写的东西放一下,做到每月都有4篇更新
PS:Linux 内核需要3.10以上 centos7可以直接安装,centos6.5 用命令 uname –a检查内核,不是3.10需要升级
以下是基于centos7的docker安装过程
安装docker参照官方文档
通过 yum安装
Log into your machine as a user with sudo or root privileges.
1.$ sudo yum update (更新yum到最新)
2.$ sudo tee /etc/yum.repos.d/docker.repo <<-‘EOF’
[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/7/
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
EOF (修改相关配置文件)
3.$ sudo yum install docker-engine(安装)
4.$ sudo service docker start(启动)
5.docker version (检查是否安装成功)
6.$ sudo docker run debian echo “Hello World”(运行个示例)
刚刚发现第三步执行失败,baseurl访问不通,那么上面这种方式已经不能成功部署,我们换个方式
首先删除配置文件 rm -rf /etc/yum.repos.d/docker.repo
执行命令sudo yum install docker
然后启动sudo service docker start(启动)
如果不是centos最新版本会启动失败,查看journalctl -xe,报错信息为
Error starting daemon: SELinux is not supported with the overlay2 graph driver on this kernel. Either boot into a newer kernel or disable selinux in docker (–selinux-enabled=false)
执行下边操作
vi /etc/sysconfig/docker
将–selinux-enabled改为–selinux-enabled=false
保存后再启动就会成功
4. 查看宿主机有哪些镜像 docker images
5.新建容器 docker run -p [] --name [] tomcat-1
Eg:
docker run -p 5000:8080 --name container1 tomcat-1
以image tomcat-1为模板,建立了一个tomcat容器 名字为container1 将宿主机的5000映射到容器的8080端口
6.查看宿主机有哪些容器 docker ps –a
7.停止容器 docker stop 名字或id
8.启动容器docker start 名字或id
9.进入容器内部的命令行
docker exec -it container2 /bin/bash
10.将war包考入到container1容器的指定目录下
docker cp /home/sa/zcbl-web.war container1/:tomcat/webapps
11.中国加速配置
vi /etc/docker/daemon.json
改为
{
“registry-mirrors”: [“https://registry.docker-cn.com”]
}
11.删除命令
docker rm 删除容器
docker rmi 删除镜像
1.将容器导出 docker export tomcat1 > latest.tar
2.导入并重命名和版本号 cat latest.tar | docker import - examptomcat:new
3.根据镜像创建容器docker run -p 5009:8080 --name y123321 -it 2a6321d2342f bin/bash
1.docker run -p 5000:5000 registry:2.0
建议
docker run -d -p 5000:5000 -v /opt/data/registry:/tmp/registry registry
2. Create or modify /etc/docker/daemon.json
{ “insecure-registries”:[“privateregistry ip:port”] }
Eg:从192.168.57.128 往私服192.168.57.130:5000推拉需要在192.168.57.128这个机器上配置为
{ “insecure-registries”:[“192.168.57.130:5000”] }
3.重启docker
service docker restart或systemctl restart docker.service
4.给镜像打标签
$ docker tag hello-world:latest 192.168.57.130:5000/hello-mine:latest
5.将镜像上传到私有库
$ docker push 192.168.57.130:5000/hello-mine:latest
6.从私有库中下载镜像
先删除已经存在的同名镜像
然后拉取 docker pull 192.168.57.130:5000/hello-mine1:latest
7.仓库查看
①登录到私有仓库容器中查看
docker exec -it 7abda12d7c2c bash
docker exec -it 799c3fa43c08 sh
存放路径/tmp/registry-dev/docker/registry/v2/repositories
Last 路径是/var/lib/registry/
②也可以使命令查看:
curl -X GET http://192.168.57.130:5000/v2/_catalog -k
③ 也可以在网页中查看
搭建一个manager,一个consul,两个node
192.168.57.128 node
192.168.57.129 node
192.168.57.130 manager
192.168.57.131consul
1.停掉多有节点的docker服务
以deamo方式运行
sudo nohup docker daemon -H tcp://0.0.0.0:2376 -H unix:///var/run/docker.sock &
3. 在131上安装consul
docker run -d -p 8500:8500 --name=consul progrium/consul -server –bootstrap
4. 在130上安装manager
docker run -d -p 192.168.57.130:4000:4000 swarm manage -H :4000 --replication --advertise 192.168.57.130:4000 consul://192.168.57.131:8500
5. 将128,129节点加入集群
docker run -d swarm join --advertise=192.168.57.128:2375 consul://192.168.57.131:8500
docker run -d swarm join --advertise=192.168.57.129:2375 consul://192.168.57.131:8500
6. 在128,129节点把各自2375端口打开
firewall-cmd --add-port=2376/tcp
7. 查看集群信息
docker -H 192.168.57.130:4000 info
1.curl -L https://github.com/docker/compose/releases/download/1.8.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
2. chmod +x /usr/local/bin/docker-compose
3. docker-compose --version
参考资料:
安装文件相关路径
Centos7 docker目录/var/lib/docker
配置文件目录/usr/lib/systemd/system/docker.service
http://bbs.chinaunix.net/thread-4166674-1-1.html 命令各个参数意义,中文版
https://docs.docker.com/ 官网
https://www.daocloud.io/mirror.html#accelerator-doc 加速
http://www.voidcn.com/blog/wanglei_storage/article/p-4413062.html 内核升级