Docker概述:
Docker是一个用于开发,交付和运行应用程序的开放平台。Docker使您能够将应用程序与基础架构分开,从而可以快速交付软件。借助Docker,您可以以与管理应用程序相同的方式来管理基础架构。通过利用Docker的方法来快速交付,测试和部署代码,您可以大大减少编写代码和在生产环境中运行代码之间的延迟。Docker是供开发人员和系统管理员 使用容器构建,共享和运行应用程序的平台。使用容器来部署应用程序称为容器化。容器不是新的,但用于轻松部署应用程序的容器却是新的。容器化越来越受欢迎,因为容器是:
- 灵活:即使最复杂的应用程序也可以容器化。
- 轻量级:容器利用并共享主机内核,在系统资源方面比虚拟机更有效。
- 可移植:您可以在本地构建,部署到云并在任何地方运行。
- 松散耦合:容器是高度自给自足并封装的容器,使您可以在不破坏其他容器的情况下更换或升级它们。
- 可扩展:您可以在数据中心内增加并自动分发容器副本。
- 安全:容器将积极的约束和隔离应用于流程,而无需用户方面的任何配置。
Docker应用场景:
- 有助于Microservices的落地和部署
- 充分利用物理机资源,同时能够整合服务器资源
- 提高开发效率,测试效率,部署效率,有利于DevOps的落地,CICD
- 云原生落地,应用更好地迁移
- ...
Image 与 Container 的关系:
Container images become containers at runtime and in the case of Docker。containers- images become containers when they run on Docker Engine.
其实说白了可以将Image当成一个Java类,而container 是new出来的 一个个实例对象。
容器和虚拟机:
容器在Linux上本地运行,并与其他容器共享主机的内核。它运行一个离散进程,不占用任何其他可执行文件更多的内存,从而使其轻巧。相比之下,虚拟机(VM)运行成熟的“guest”操作系统,并通过虚拟机管理程序对主机资源进行虚拟访问。通常,VM会产生大量开销,超出了应用程序逻辑所消耗的开销。它两的区别如下:
环境准备:
我这里是采用的 VMware 的方式来安装Docker,也可以采用 vagrant+virtual box 的方式搭建虚拟机。我的环境是Centos7 的虚拟机环境。
若使用vagrant+virtual box 的方式搭建虚拟机,基本操作如下:
下载安装 vagrant :
01 访问Vagrant官网 https://www.vagrantup.com/ 02 点击Download Windows,MacOS,Linux等 03 选择对应的版本 04 傻瓜式安装 05 命令行输入vagrant,测试是否安装成功
下载安装 virtual box:
01 访问VirtualBox官网 https://www.virtualbox.org/ 02 选择左侧的“Downloads” 03 选择对应的操作系统版本 04 傻瓜式安装 05 [win10中若出现]安装virtualbox快完成时立即回滚,并提示安装出现严重错误 (1)打开服务 (2)找到Device Install Service和Device Setup Manager,然后启动 (3)再次尝试安装
安装 centos7:
01 创建first-docker-centos7文件夹,并进入其中[目录路径不要有中文字符] 02 在此目录下打开cmd,运行vagrant init centos/7
此时会在当前目录下生成Vagrantfile 03 运行vagrant up[注意不要运行,拉取远端的centos7太慢]
此时会找centos7的镜像,本地有就用本地的,本地没有就会拉取远端的 04 准备centos7的box (1)选中命令行中提示的链接 比如 https://vagrantcloud.com/centos/boxes/7/versions/1905.1/providers/virtualbox.box (2)复制到迅雷中下载 (3)vagrant box add centos/7 D:迅雷下载virtualbox.box (4)vagrant box list 查看本地的box[这时候可以看到centos/7] 05 根据本地的centos7 box创建虚拟机 vagrant up[打开virtual box,可以发现centos7创建成功] 06 vagrant基本操作 (1)vagrant ssh 进入刚才创建的centos7中 (2)vagrant status 查看centos7的状态 (3)vagrant halt 停止centos7 (4)vagrant destroy 删除centos7 (5)vagrant status 查看当前vagrant创建的虚拟机 (6)Vagrantfile中也可以写脚本命令,使得centos7更加丰富 但是要注意,修改了Vagrantfile,要想使正常运行的centos7生效,必须使用vagrant reload
至此,使用vagrant+virtualbox搭建centos7完成,后面可以修改Vagrantfile对虚拟机进行相应配置 若想通过Xshell连接:
01 查看centos7相关信息 vagrant ssh-config 关注:Hostname Port IdentityFile 02 Xshell连接 IP:127.0.0.1 port:2222 用户名:vagrant 密码:vagrant 文件:Identityfile指向的路径 03 使用root账户登录 sudo -i vi /etc/ssh/sshd_config 修改PasswordAuthentication yes passwd修改密码 systemctl restart sshd root vagrant 登录
Docker 安装:
1.首先我们先卸载原来的Docker安装环境,yum list installed | grep docker 列出安装过的包, sudo yum -y remove docker-engine.x86_64 删除对应的安装。rm -rf /var/lib/docker 删除所有镜像容器等。
sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
运行成功的界面如下:
2.安装Docker环境所需的相关依赖
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
3.设置docker仓库 [设置阿里云镜像仓库]。
sudo yum-config-manager
--add-repo
https://download.docker.com/linux/centos/docker-ce.repo
上面这个Docker仓库出现问题则使用阿里云的:sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
address:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors,设置阿里云镜像加入器.登录阿里云控制台,找到镜像加速器,执行对应命令:
sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://1m38pnqb.mirror.aliyuncs.com"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker
更新yum缓存:sudo yum makecache fast
4.安装Docker:
sudo yum install docker-ce docker-ce-cli containerd.io
如果需要指定版本则:yum install -y docker-ce-18.09.0 docker-ce-cli-18.09.0 containerd.io
安装完Docker后会创建一个本地网卡:
5.启动docker并且设置为开机启动:
sudo systemctl start docker && sudo systemctl enable docker
6.测试是否安装成功:成功则答应出相关的信息
sudo docker run hello-world
查看docker版本信息:
docker version
docker pull在哪拉取的镜像?:hub.docker.com
默认是最新的版本,可以在后面指定版本":" 。比如拉去centos 7.6.1810版本:
Docker常用的基本命令:
docker pull 拉取镜像到本地
docker images 查看当前的镜像信息
docker rmi -f 删除对应镜像 docker run 参数 images 根据某个镜像创建容器 -d 让容器在后台运行,其实就是一个进程 --name 给容器指定一个名字 -p 将容器的端口映射到宿主机的端口 docker exec -it 进入到某个容器中并交互式运行
docker ps 查看当前运行的容器 -a可以查看退出的容器
docker restart d5476b626a01 重启容器
docker stop quizzical_almeida 停止某个容器
docker logs 查看容器日志
exit 退出容器
docker rm $(docker ps -aq) 删除所有容器
Docker 安装 Tomcat:
1.拉取镜像 docker pull tomcat
2. 查看镜像 docker images
3.创建一个名字叫 tomcat-wuzz 的tomcat容器,且后台运行 将其默认端口8080 映射到centos系统的 9991 端口上。
4.查看容器 docker ps
5.进入tomcat容器 docker exec -it tomcat-wuzz /bin/bash 。
6.查看内容 ls 可以看到跟我们传统的方式目录下内容是一致的。
7.进入bin目录并且启动tomcat:
8.在物理主机这边访问:http://192.168.1.101:9991/ ,我这边的虚拟机IP地址是192.168.1.101.能成功访问。
Docker 其他常见的容器安装可以参考 https://www.runoob.com/docker/docker-tutorial.html