这2个周一直在被docker折磨着,有些心路历程我觉得可能记录下来对自己的以后或者别人都可能有个启示作用。
刚换了工作一个月,需要用到docker。以前只是接触过一点,包括docker下载和安装,docker image的制作,container的一些简单使用。并未去了解docker是什么,docker用来做什么。正是因为对知识的了解不够深入,不知道docker能做哪些。比如,接到任务:1,把集群上安装的软件用docker打包,打包的时候要把该软件依赖的包也自动抓进去,不需要再image中再安装一次(这显然是不可行,有时需要坚定自己立场)2,在主机上调用image中的软件,而不需要启动容器,在容器中调用(其实在容器中运行和在宿主机上运行都是一样的,因为他们的进程都是运行在宿主机的内核空间中)。
接下来就说下ubuntu和centos的安装:
如果是刚安装好的的VM上的ubuntu:
先进入root权限
rm /var/cache/apt/archives/lock
rm /var/lib/dpkg/lock
apt-get update
apt-get upgrade
apt-get -y install docker.io
centos7进入root:
curl -fsSL https://test.docker.com/ | sh -s -- --mirror Aliyun
RHEL/CentOS 软件源中的 Docker 包名为 docker;Ubuntu 软件源中的 Docker 包名为 docker.io;而很古老的 Docker 源中 Docker 也曾叫做 lxc-docker。这些都是非常老旧的 Docker 版本,并且基本不会更新到最新的版本,而对于使用 Docker 而言,使用最新版本非常重要。另外,17.04 以后,包名从 docker-engine 改为 docker-ce,因此从现在开始安装,应该都使用 docker-ce 这个包。ubuntu用apt-get install docker-io,下载下来的就是docker-ce,但是centos用yum install docker安装后docker version并不是docker-ce,用curl方式下载的docker是docker-ce。
对于centos而言的话,用最新版本docker-ce的最大好处是Storage Driver 是overlay(用docker info查看)。而老版本是device mapper,很容易导致磁盘不满。
安装好了docker后,就把普通用户加入到docker组,这样就不需要再root下才能使用docker了。
1. $sudo cat /etc/group | grep docker
#查看是否有docker组
2. $sudo groupadd -g 999 docker
#-g 999 为组ID,也可以不指定
3. sudo gpasswd -a ${USER} docker#普通用户加入docker组
4. sudo systemctl restart docker
5. sudo chmod a+rw /var/run/docker.sock # 执行docker命令时如果发生以下错误,修改文件权限
再接下来,就可以docker pull 远端的镜像了。但是,可能遇到pull的时候很慢甚至下载不下来情况,可以加入镜像加速器。
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://4fc7086d.m.daocloud.io
这样在 /etc/docker/daemon.json文件中就存在了”registry-mirrors”: [“http://4fc7086d.m.daocloud.io“]加速器路径。
当然,你也可以直接docker pull daocloud.io/library/centos:latest 。
下次,有时间在写下镜像的制作,容器的使用,私有仓库的搭建。