docker是个什么东西
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口
docker由什么组成
- 镜像这里你就可以把镜像认为是一种模板。我们可以使用docker根据这个模板创建容器来运行。docker镜像中有分层的概念,就是一个镜像可能基于好几个镜像,比如一个web运行环境可能需要操作系统ubuntu、数据库mysql、.net core runtime运行时,那我们拉取的这个镜像就会包好这好几个镜像,这就好像我们前边说的打包好的运行环境一样,直接就拉下来一个小电脑一样。
- 容器当我们拉取了一个镜像,然后run一下,就会根据这个镜像运行出来一个容器,运行的容器就好像我们的应用程序一样,可以访问可以停止,我们运用多次run命令,就运行了很多很多容器,也可以说是镜像的实例。从这个角度来看,我们可以把镜像看作是类,容器看作new出来的实例,也是很合适的。
仓库存放docker镜像的地方我们叫做dockerhub,是docker的中央仓库。其实已经有dockerhub这个网站了(https://hub.docker.com/),这就是 存放docker镜像的官方仓库,好多官方的也保存在这里,保证了镜像的安全性和可靠性,我们可以从上边拉取一下镜像来运行我们的软件。当然我们也可以制作好我们自己镜像推送上去,不过这些肯定是要官方审核的,防止有些人写入一些恶意代码。不过我们可以推到我们自己的dockerhub上去,供我们自己使用,这个就好我们的github账号一样了,属于私有镜像了。
centos安装docker
更新yum到最新版本 yum update
卸载旧版本docker sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-selinux \ docker-engine-selinux \ docker-engine
安装需要的软件包
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
配置阿里云docker yum源
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
查看docker版本
yum list docker-ce --showduplicates
注意:在某些版本之后,docker-ce安装出现了其他依赖包,
如果安装失败的话请关注错误信息。例如 docker-ce 17.03 之后,
需要先安装 docker-ce-selinux(查询所有的selinux)
yum list docker-ce-selinux --showduplicates
安装低版本docker(比如docker 17.03.2)时需要指定
完整的rpm包的包名,并且加上`--setopt=obsoletes=0`
yum install -y --setopt=obsoletes=0 \
docker-ce-17.03.2.ce-1.el7.centos.x86_64 \
docker-ce-selinux-17.03.2.ce-1.el7.centos.noarch
安装Docker较新版本(比如Docker 18.03.0)时加上rpm包名
sudo yum install docker-ce-18.03.0.ce
安装最新版本无需加版本号
sudo yum install docker-ce
启动docker服务
systemctl enable docker(设置开机启动)
systemctl start docker(启动)
systemctl stop docker(暂停)
systemctl restart docker(重启)
查看docker版本
docker version
常用命令docker search 镜像名称(查询镜像)
docker pull 镜像名称(下载镜像)
docker images(查询本地镜像)
docker rmi (删除容器)
docker run it 镜像名称 (运行镜像到容器中)
docker ps -a(查询正在运行的容器)
docker rm 容器id(删除容器)
docker start 容器id(启动容器)
docker stop 容器id(关闭容器)
docker exec -it 容器id /bin/bash(进入容器命令行)
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。