一、简介
1.什么是Docker ?
来自百度百科:Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
个人认为:就是一套精细压缩的操作系统,来维护我们的应用环境。
2.Docker由什么组成呢 ?如何理解?
1.仓库(Repository)
2.镜像(Image)
3.容器(Container)
Docker的仓库里存放了很多的镜像(可以理解为模板),而这些镜像可以用来实例化容器。有时候可以理解为镜像就是一个类(镜像),我们可以用来实例一个对象(容器),而我们项目(仓库)会有很多类
二、前提条件:
1.依据docker官网中文给出的,本次采用CentOS 7下进行安装
三、安装Docker
注意:如果已经有安装的旧版本,卸载操作,如图。如果从未安装的请跳过该步骤
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
1.安装yum-utils软件包(提供yum-config-manager 实用程序)。
yum install -y yum-utils
2.设置稳定的存储库,简化安装和升级任务。
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
3.安装最新版本的Docker Engine和容器,,一路Y下去
yum install docker-ce docker-ce-cli containerd.io
注意:如果要安装特定版本的话
a.请在存储库中列出可用版本,然后选择并安装,如下
yum list docker-ce --showduplicates | sort -r
b.通过其完全合格的软件包名称安装特定版本,该软件包名称是软件包名称(docker-ce)加上版本字符串(第二列),从第一个冒号(:)到第一个连字符,以连字符(-)分隔。例如,docker-ce-18.09.1。
yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
4.查看版本、启动、设置开机启动
docker version
systemctl start docker
systemctl enable docker
四、阿里云Docker-镜像加速的配置
鉴于国内网络问题,我们访问国外网站比较慢,而后续拉取 Docker 镜像也是十分缓慢,所以我们需要配置加速器来解决。推荐:阿里云docker镜像加速器
1.申请加速器
a.使用阿里云帐号(支付宝扫码即可)登录
b.进入设置镜像仓库密码
c.镜像中心---->镜像加速器
2.在 /etc/docker 文件夹下新建daemon.json文件,内容
{
"registry-mirrors": ["加速器地址"]
}
3.启用并重启
systemctl daemon-reload
systemctl restart docker
4.验证配置(此处是中科大的加速地址)
docker info
五、Docker验证
docker run hello-world
注:本次安装多数按照官网进行,还请多多指正
X.其他指令
1.安装docker-compose插件
curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
如图
2.给docker-compose权限
chmod 777 /usr/local/bin/docker-compose
3.查看docker-compose版本
docker-compose --version
注意:新注册的服务,启动报错
类似
Error response from daemon: driver failed programming external connectivity on endpoint
可能原因
docker服务启动时定义的自定义链DOCKER由于firewall被清掉
firewall的底层是使用iptables进行数据过滤,建立在iptables之上,这可能会与 Docker 产生冲突。
当 firewalld 启动或者重启的时候,将会从 iptables 中移除 DOCKER 的规则,从而影响了 Docker 的正常工作
处理方式:重启docker服务后再启动容器
systemctl restart docker