docker的安装及常用命令
一:概述
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows 机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。
-
DockerClient客户端
-
Docker Daemon守护进程
-
Docker Image镜像
-
Docker Container容器
而容器技术的核心有以下几个内核技术组成:
1.cgroups 资源管理(限制空间大小)
2.Namespace 进程隔离
3.SElinux 安全
下面有一张docker容器技术和传统虚拟化技术的对比图,很清楚的看见docker之所以比传统虚拟化速度要快,是因为docker没有操作系统
可以理解为就是一个程序(不占内存,cpu,速度快)这也是和传统虚拟化最大的区别
docker也有自己的缺点
1.容器的隔离性没有虚拟化强
2.共用Linux内核,安全性有先天缺陷
3.selinux难以驾驭
4.监控容器和容器排错
二:安装要求
1.64位操作系统
2.至少RHEL6.5版本以上,个人强烈建议RHEL7.0版本
3.关闭防火墙(不是必须)
4.内核版本必须是3.10以上,可以通过 uname -r 命令检查内核版本
三:安装docker
1.已经安装过docker的,需要进行卸载
命令:yum -y remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-engine
因为我是新建的虚拟机,并没有安装docker历史
2.安装docker依赖包
命令:yum -y install yum-utils device-mapper-persistent-data lvm2
有两种方法下载docker源,一种是官方,一种是阿里云,个人建议使用阿里云
命令:cd /etc/yum.repos.d/
官网地址:yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
阿里云地址:yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3.正式安装docker
命令:yum -y install docker-ce
4.启动docker以及测试
命令:systemctl start docker #启动docker
测试:docker run hello-world
执行命令docker后,如果与下图内容一致 则表示成功
或者输入ip a (ifconfig)会出现如下图,也是安装成功
Docker环境信息
--info命令 用于检测Docker是否正确安装,一般结合docker version命令使用。 --version命令
镜像常用列表
docker images 查看镜像列表 例: docker images
docker history 查看镜像制作历史 例: docker history docker.io/centos
docker inspect 查看镜像底层信息 例: docker inspect docker.io/centos
docker pull 下载镜像 例: docker pull centos 例: docker pull seanlook/centos:centos6
docker push 上传镜像 例: docker push seanlook/mongo
docker rmi 删除本地镜像 例: docker rmi docker.io/centos
docker save 镜像另存tar包导出镜像 例: docker save docker.io/busybox:latest -o busybox.tar (导出镜像到busybox.tar里)
docker load 导入镜像 例: docker load -i nginx.tar
docker search 搜索镜像 例: docker search docker.io/centos
docker tag 修改镜像名称和标签 例: docker tag docker.io/centos:latest cen:v1 把镜像名称docker.io和标签latest 改成cen:v1 latest为默认标签
容器常用列表
docker run 运行容器 例:docker run -itd --name tem centos:latest
it:是直接使用,一旦退出,容器自动关闭 itd:是放在后台运行 --name 容器名 centos:latest 镜像
docker ps 查看正在运行的容器 docker ps -a 查看所有容器列表 docker ps -aq 仅显示容器id
docker stop 关闭容器 查看运行的容器id然后关闭 例: docker stop b8f
docker start 开启容器 同上
docker restart 重启容器 同上
docker attach/exec 进入容器 attach 进入容器后exit退出会导致容器关闭 exec进入容器退出时不会关闭容器 docker attach b8f2
docker inspect 查看容器底层信息 docker inspect b8f
docker top 查看容器进行列表 docker top b8f2
docker rm 删除容器 docker rm b8f2 容器运行时删除会提示错误 要先关闭容器
端口映射 (使用doxker部署服务时需要做端口映射)
docker pull nginx //如以下载好nginx
docker run -p 8080:80 -d docker.io/nginx //将80端口映射为8080,或者80:80还是原先的80端口,不可以不写
netstat -anp | grep 8080 //端口已经开启了
docker ps //nginx已经在运行了
当docker运行nginx时,外界访问还是docker所在的那个IP地址,就相当于nginx在那台机器上运行一样