1.docker是什么?
一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。(来源百度百科)
对我们而言就是一个轻量级的应用在虚拟机或者linux系统里面的容器技术。
2.docker由哪些组成?
1)仓库(分为远程仓库和私有仓库),存放镜像的地方。
2)镜像(从仓库拉取保存到本地docker里面的镜像)
3)容器(有了本地镜像就可以创造出容器)
镜像比作类,容器比作实例,容器之间互不干扰,是隔离的。
3.用docker能干嘛?
1)借助镜像快速部署项目环境
2)每一个容器的占资源很小,大大节约资源成本
3)借助升级扩容能一键对千万服务集群快速部署
4)容器端口映射在宿主机端口,容器文件挂载在宿主机文件上,对容器管理也很方便。
不足之处:持久化的数据只能借助挂载存储,当docker重启或者忽然断开,数据会丢失。
4.先部署虚拟机,我拿到了虚拟机的压缩包如下,然后解压后安装
安装完以后如下页面:点击文件找到新建窗口,然后点击打开虚拟机,把Centos-xt选中点击打开,然后虚拟机输入虚拟机账号和密码,匹配以后输入ifconfig找到静态IP
重点来了,要在vi /etc/sysconfig/network-scripts/ifcfg-ens33 里面设置一下参数,这样每次登陆虚拟机的静态IP就会是一致的。第一步 cd /etc/sysconfig/network-scripts 第二步ls,第三步vi ifcfg-ens33 ,点击i键进入编辑模式,然后改如下参数后,ECS键以后shift+:wq!强制保存退出。
5.用xshell连接虚拟机(也是虚拟机使用方法)如下图解:
6.连接上xshell开始使用docker指令
docker -v 查看docker版本
docker -help 查看docker命令
systemctl start docker 启动docker进程
systemctl stop docker 停掉docker进程
systemctl stop firewalld 关闭防火墙
docker pull tomcat 从公有仓库拉取tomcat镜像
docker images 查看本地镜像
docker rmi 本地镜像id 删除本地镜像
docker create --name=tomcat1 tomcat 创建一个叫tomcat1的容器,没有运行
docker create --name=tomcat2 tomcat 创建一个叫tomcat2的容器,没有运行,一个镜像可以创造N个容器
docker start tomcat1 启动容器
docker stop tomcat1 关闭容器
docker ps -a 查看正在运行的容器
docker ps -a 查看所有的容器(运行或者未运行)
docker rm -f tomcat1 删除容器
docker log -f --tail 10 容器id 查看容器的前十行的日志。
重点 一键式从仓库拉取,然后后台运行创建的容器
必填:docker run
选填:
-i 运行容器
-t 容器启动后进入命令行
-v 目录挂载 宿主机目录:容器目录
-d 后台执行
-p 端口映射 宿主机端口:容器端口
--name= 容器名字
--restart=always 自启动。
例如:docker run -id --name=tomcat2 -p 1011:8080 -v /usr/local/tomcat2/webapps:/usr/local/tomcat/webapps tomcat
(解释:从远程拉取tomcat镜像,创建一个叫tomcat2的容器,端口是8080,宿主机端口是1010,把容器的tomcat/webapps目录挂载在tomcat2/webapps上)
例如:docker run -id --name=tomcat3 --restart always tomcat
(解释:拉取tomcat存在本地,创建tomcat3的容器,运行docker的时候就启动了容器。
7.tomcat就能在本地起来了,如下:
然后再把应用程序包放在webapps下面程序就可以运行了,如下:
至于Jenkins就是同样操作,只是不同的挂载目录如下:
8.docker拉取镜像很慢的解决办法如下:
我这边的虚拟机系统是centos 7,然后我也是参考别人的教程自己跟着做,就好了。
先第一步cd /etc/docker,第二步ls ,出来了key.json文件,然后vi 把 {"registry-mirrors": ["https://registry.docker-cn.com"]}写入文件中,保存以后试试。我发现只快了一点点,
于是接着mkdir - p /etc/docker/daemon.json 然后vi内容{
"registry-mirrors": ["https://bhtanx0u.mirror.aliyuncs.com"]
}
然后保存以后sudo systemctl daemon-reload,sudo systemctl restart docker,就可以了,参照阿里云的步骤,如下,果然速度杠杠的