Step2: 切换root用户
进入超级用户root模式。也就是输入"su -",系统会让你输入超级用户密码,输入密码后就进入了超级用户模式。(当然,你也可以直接用root用)
添加文件的写权限。也就是输入命令"chmod u+w /etc/sudoers"
Step3: 为创建的用户添加sudo权限
编辑/etc/sudoers文件。也就是输入命令"vi /etc/sudoers",输入"i"进入编辑模式,找到这一 行:"root ALL=(ALL) ALL"在起下面添加"xxx ALL=(ALL) ALL"(这里的xxx是你的用户名),然后保存(就是先按一 下Esc键,然后输入":wq")退出。
yum list installed | grep docker
查询安装过的
yum -y remove docker-client.x86_64
命令 执行删除安装包
# curl -sSL https://get.docker.com/ | sh # yum install -y docker-selinux
或者使用阿里云 安装
https://help.aliyun.com/document_detail/60742.html?spm=5176.11065259.1996646101.searchclickresult.3f8def44MHwoQJ
添加软件源信息
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sudo yum makecache fast
sudo yum -y install docker-ce
sudo service docker start
安装docker完成 输入"docker version"
提示:国内镜像站点设置docker镜像源很多要求docker版本在1.8以上
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://22826b6a.m.daocloud.io
该脚本可以将 --registry-mirror 加入到你的 Docker 配置文件 /etc/docker/daemon.json(没有时新建该文件) 中。适用于 Ubuntu14.04、Debian、CentOS6 、CentOS7、Fedora、Arch Linux、openSUSE Leap 42.1,其他版本可能有细微不同。更多详情请访问文档
要求重启docker
输入命令"sudo systemctl restart docker"
但是执行了这个命令以后重启会报错,原因是在配置文件里多加了一个,
此错误原因是json文件多了一个逗号","
执行命令docker daemon
解决办法:打开/etc/docker/daemon.json这个文件,删除掉,保存,重启docker.
1、vi /etc/docker/daemon.json 输入命令 i进入编辑模式
找到那个逗号,按下X键删除这个,
按下esc,输入:wq保存文件
提示没写的权限,就输入:wq!
下图是因为输错命令强制关闭terminal重新打开进入编辑文件时出现的提示,有变化副本是否需要保存。
rm /var/tmp/daemon.json.swp 直接删除变化的文件。其实上面的问题,折腾了一圈原来是没加sudo esc退出 重新sudo vi /etc/docker/daemon.json
编辑保存搞定!
2、重启docker:sudo systemctl restart docker
查看服务状态 命令 sudo docker info
成功。
安装完成,终于可以浪了!!!
配置Docker开机自启动:
# systemctl enable docker.service
测试: 安装mysql
sudo docker pull mysql:5.7.13
接下来建立容器:
对于容器简单解释下,更多信息请百度 google查找。
Docker 容器是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app)。几乎没有性能开销,可以很容易地在机器和数据中心中运行。最重要的是,他们不依赖于任何语言、框架包括系统。Docker在一个单一的容器内捆绑了关键的应用程序组件,这也就让这容器可以在不同平台和云计算之间实现便携性。其结果就是,Docker就成为了需要实现跨多个不同环境运行的应用程序的理想容器技术选择。
Docker安装完成之后直接 pull了mysql镜像, 然后才创建容器,比如容器A。创建的这个容器A是mysql镜像的一个实例。 我可以再创建个容器B ,创建的mysql root密码可以和A不一样。 再比如我docker pull了tomcat镜像,我可以创建若干tomcat容器 ,每个tomcat容器都是一个tomcat镜像实例。
选择第一个进去,有很多使用命令
因为我是mysql的最新版,所以把mysql:tag改成mysql就好了(docker pull mysql时候tag还是要指定的,否则很容易出错)
如果忘记加端口。。。。
停掉容器 sudo docker stop (容器名)
删除容器命令 “sudo docker rm 容器名”,命令运行之后再用sudo docker ps -a查看还有容器没。
输入 "sudo docker ps" 查看容器状态 如果出现up 说明启动成功。
输入ifconfig查看容器所在 IP ,docker0是docker的内部私有IP
确定好之后 通过外部机器客户端连接 经测试成功!
按照这个mysql的启动经验,基本算入门,但是在容器里面,只启动一个这个东西是没有意义的。需要配合其它服务,这个后面会学习。
一些常用docker命令:
docker logs 容器名
1、停止:docker stop 容器名
2、启动:docker start 容器名
3、重启:docker retstart 容器名
4、查看日志:docker logs 容器名
5、进入容器:docker exec -it 容器名 /bin/bash
6、创建并运行容器:docker run 里面有很多参数,去网上看了
7、docker ps 查看正在运行的容器
8、docker ps -a查看所有容器,不管是否在运行
9、docker images 查看所有本地镜像
1、docker save 保存镜像到文件
2、docker load 从文件加载镜像
3、docker commit 把容器提交成一个镜像
4、docker push 把镜像推送到远程服务器
基本上所有的容器的启动都是这样。 比如你要把mysql的数据文件放到宿主机上,不希望放到容器里面,这样不会因为容器挂掉,导致你数据损坏。
还有几个问题思考一下:
1、假如我的镜像一直在变化,如何对镜像进行版本控制
2、如何让容器之间互联,比如tomcat容器去连接mysql容器
3、如何快速启动容器副本
4、容器默认只能在单个宿主机上跑,跟别的宿主机上的容器是没办法沟通的,那怎么让容器在集群的宿主机上部署
1、使用Dockerfile进行版本控制
2、使用docker的link或docker compose
3、docker compose的scale命令
4、使用Kubernetes
2.$ sudo apt-get install docker
3.安装完之后命令查看安装版本
或者输入docker version
可以看到1.0.1版本相当低, centos7上的 最新版本比较高,同样最新版本
client version 1.22.6
client api version 1.24
这是因为 docker最新版本的 要求64位,所以32位系统上docker版本很低。
4. 当时根据春哥发的文章,http://guide.daocloud.io/dcs/daocloud-9153151.html
决定还是升级下 docker版本
先安装支持https
配置apt允许以 HTTPS方式拉取镜像安装:
$ sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ software-properties-common
输入y 继续
添加Docker官方 GPG key:
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
校验 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
.
$ sudo apt-key fingerprint 0EBFCD88
最后运行安装命令的的结果就是i686不是被支持的platform(i686是32位),吐血! 只得重新安装一个新的CentOS7 64位版本。