**注意:docke必须安装在centos7平台 ,内核版本不低于3.10
查看系统内核版本: uname
在centos平台运行docker可能会遇到些告警信息,修改内核配置参数,打开内核转发功能。
开启linux内核的流量转发功能
cat > /etc/sysctl.d/docker.conf <<EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.all.rp_filter = 0
net.ipv4.ip_forward=1
EOF
需要提前配置好yum仓库
1.阿里云自带仓库2.阿里云提供的docker专属repo仓库
curl -o /etc/yum.repos.d/docker-ce.repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
curl /etc/yum.repos.d/Centos-7.repo http://mirrors.aliyun.com/repo/Centos-7.repo
更新yum缓存
yum clean all && yum makecache
安装docker-ce
yum install -y docker-ce-20.16.7 -y
查看源中可用的版本
yum list docker-ce --showduplicates | sort -r
使用docker首要操作就是获取镜像文件,默认下载是从Docker Hub下载,网速较慢,国内很多云服务商都提供了加速器服务,阿里云加速器,Daocloud加速器, 灵雀云加速器。
mkdir -p /etc/docker
vim /etc/docker/daemon.json
{
"registry-mirrors" : [
"https://8xpk5wnt.mirror.aliyuncs.com"
]
}
尝试启动,启动docker,设置开机自启动
systemctl daemon-reload
systemctl enable docker
systemctl start docker
检验docker是否安装并且成功启动
ps -ef | grep docker
docker version
以Nginx(80端口)应用服务为例
1.获取Nginx镜像【从哪里获取镜像,是从你配置好的docker镜像站即上述配置的/etc/docker/daemonset.json中拉取的】
查找镜像站中的镜像是否存在:docker search 镜像名称
拉取指定版本的镜像:docker pull 镜像名称:tag
2.运行镜像,生成容器,则应用服务运行在容器里面
docker run -d -p 80:80 镜像ID
参数:-d指在后台运行 ,-p端口映射,宿主机端口:容器内端口,实现访问宿主机指定端口就相当于访问容器的指定端口
端口映射概念:docker启动了一个代理程序docker-proxy,将宿主机的80端口代理映射到容器内的80端口
查看镜像:docker images
查找镜像站中的镜像是否存在:docker search 镜像名称
拉取指定版本的镜像:docker pull 镜像名称:tag
批量删除镜像: docker rmi `docker image -aq` -aq:列出所有的ID
批量删除容器: docker rm `docker ps -aq`
导出镜像:(将自定义好的镜像提交给镜像,再导出该镜像为压缩文件,可以发给其他人使用)
docker image save 镜像ID > /opt/xxx.tgz
导入镜像:docker image load -i /opt/xxx.tgz
查看docker服务信息:docker info / docker image inspect 镜像ID
上传镜像到仓库:docker push
删除本地指定镜像:docker rmi 镜像ID
运行镜像,生成容器:docker run -d -p 80:80 镜像ID
参数:-d指在后台运行 ,-p**端口映射**,宿主机端口:容器内端口,实现访问宿主机指定端口就相当于访问容器的指定端口
端口映射概念:docker启动了一个代理程序docker-proxy,将宿主机的80端口代理映射到容器内的80端口
查看docker镜像的存储路径:docker info | grep Root
只显示镜像的id:docker images -q
删除镜像(必须先停止由该镜像生成的容器):docker image 镜像ID rmi