使用新技术三问:是什么?为什么(用)?怎么做(用)?
什么是docker?
1. 打包程序和运行环境,把环境和程序一起发布的容器。将发布的程序连同运行环境一起发布,避免了“在我电脑上是好的,在你那里就坏了”的情况 。就像杯子可以装水,笔筒可以放笔,书包可以放书,可以把hello word放在docker中,可以把网站放入docker中,可以把任何想得到的程序放在docker中.
2. docker基于镜像,可以秒级启动各种容器。每一种容器都是一个完整的运行环境,容器之间相互隔离
为什么用docker?
1.docker解决了运行环境不一致所带来的问题:docker把操作系统,jdk,tomcat,代码,配置全部放到集装箱里.再打包放到鲸鱼上,由鲸鱼给我们送到服务器上,在我的机器上怎么运行,在别的机器上也怎么运行.不会有任何的问题。
2.docker解决资源占用的问题:docker在启动的时候会限定系统使用资源,不会让其他资源占用而导致崩溃。如果超过了,就会杀掉对应进程。
3.docker解决扩充服务器的问题:用标准的方式把我们的程序运过来,下载过来,再用标准的方式把它运行起来,就可以做到只要在每台机器上都执行一两条命令,就可以让程序正常跑起来
linux上怎么用docker?
Docker镜像网站: Docker Hub (类似于软件版Maven)
Docker官方文档: https://docs.docker.com/
1. 卸载系统之前的docker
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
2. 安装Docker-CE
安装必要的依赖
sudo yum install -y yum-utils \device-mapper-persistent-data \lvm2
sudo yum-config-manager \--add-repo \https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install docker-ce docker-ce-cli containerd.io
启动docker
sudo systemctl start docker
设置docker开机自启
systemctl enable docker
docker镜像加速
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{ "registry-mirrors": ["https://mbljjdx2.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
docker常用命令
docker imagers 检查下载了哪些镜像