背景
docker是什么?
docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。简言之,就是可以在Linux上镜像使用的这么一个容器。
docker可以在什么情况下使用
1.web应用自动化打包发布,像tomcat应用的发布
2.自动化测试和持续集成、发布
3.在服务型环境中部署和调整数据库或其他的后台应用
4.搭建paas环境
Docker的组成
镜像:就是一个只读的模板。镜像可以用来创建 Docker 容器,一个镜像可以创建很多容器。
例子: Person p1 = new Person(); Person p2 = new Person(); 其中Person就相当于一个镜像,p1 p2就相当于容器
容器:独立运行的一个或一组应用。容器是用镜像创建的运行实例
仓库:是集中存放镜像文件的场所
Docker的安装
官方文档:https://docs.docker.com/engine/install/centos/
#1.卸载旧版本 $ yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine #2.安装储存库 $ yum install -y yum-utils #3.配置阿里云的镜像地址 $ yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo #4.更新软件包索引(可选) $ yum makecache fast #5.安装最新版本的Docker Engine和容器 $ yum install docker-ce docker-ce-cli containerd.io #6.启动docker systemctl start docker #7.验证是否启动成功 docker version #8.测试hello word程序 docker run hello-world #具体流程为: #在docker本机寻找是否有该镜像,如果有就运行容器实例,如果没有就上阿里云的镜像上查找 #在阿里云镜像上查找,如果有的话就下载该镜像到本地,以该镜像为模板生产容器运行,如果没有就返回错误找不到该镜像 #9.查看当前的镜像 docker images #10.卸载docker $ sudo yum remove docker-ce docker-ce-cli containerd.io $ sudo rm -rf /var/lib/docker
配置阿里云镜像加速器
地址:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <'EOF' {
"registry-mirrors": ["https://sv01gfb1.mirror.aliyuncs.com"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker
镜像命令
常用命令
docker version docker info 对个人信息描述 docker --help docker images 列出本地的镜像 docker images -a 列出本地所有的镜像(含中间镜像层) docker images -q 当前镜像的image_id docker images -qa docker images --digests 显示镜像的摘要信息 docker images --no -trunc 显示完整的镜像信息 docker search -s 30 tomcat 显示点赞数超过30 docker search --no -trunc 显示完整的信息 docker search --automated 只列出automated build类型的镜像
# 查询镜像 docker images --no -trunc # 显示全镜像号 # 搜索镜像 docker search -s 30 tomcat # 收藏数大于30 docker search --no-trunc mysql # 显示完整信息 # 拉取镜像 docker pull mysql # 拉取mysql的最新镜像 docker pull mysql 5.7 # 拉取指定版本的镜像 # 删除镜像 docker rmi 镜像名称 #删除单个镜像 默认删除最新(如果后面不跟版本号的话) docker rmi -f 镜像名称 #强制删除 docker rmi -f 名称1 名称2 #删除多个镜像 docker rmi -f $(docker images -qa) #删除全部镜像 # 启动镜像 docker run -it --name '