一、为什么用docker
-
对比部署方式
传统部署:成本高、部署慢、不利于扩展
虚拟化部署:相对传统部署来说扩展和资源利用较好,但是虚拟机太重,占用太多资源
docker部署:1、充分利用机器资源;2、有助于MicroService部署;3、推动DevOps落地淘汰敏捷开发,提高开发、测试、部署效率;4、云原生落地、利于应用迁移;
二、docker的安装
- 首先有一台Centos7系统的机器,VirtualBox + vagrant, VM, 阿里ECS, 腾讯CVM都可以
- 卸载之前docker
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
- 安装必要的依赖
sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
- 添加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
- 配置阿里镜像仓库
//登录自己的阿里账号https://cr.console.aliyun.com/cn-shenzhen/instances/repositories
//找到镜像仓库
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["你自己的地址"]
}
EOF
sudo systemctl daemon-reload
- 安装docker
//直接安装
sudo yum install -y docker-ce docker-ce-cli containerd.io
//选择版本安装
//查询可安装版本
yum list docker-ce --showduplicates|sort -r
//查询结果
docker-ce.x86_64 3:19.03.4-3.el7 docker-ce-stable
docker-ce.x86_64 3:19.03.3-3.el7 docker-ce-stable
docker-ce.x86_64 3:19.03.2-3.el7 docker-ce-stable
docker-ce.x86_64 3:19.03.1-3.el7 docker-ce-stable
docker-ce.x86_64 3:19.03.0-3.el7 docker-ce-stable
docker-ce.x86_64 3:18.09.9-3.el7 docker-ce-stable
docker-ce.x86_64 3:18.09.8-3.el7 docker-ce-stable
docker-ce.x86_64 3:18.09.7-3.el7 docker-ce-stable
docker-ce.x86_64 3:18.09.6-3.el7 docker-ce-stable
docker-ce.x86_64 3:18.09.5-3.el7 docker-ce-stable
docker-ce.x86_64 3:18.09.4-3.el7 docker-ce-stable
docker-ce.x86_64 3:18.09.3-3.el7 docker-ce-stable
docker-ce.x86_64 3:18.09.2-3.el7 docker-ce-stable
docker-ce.x86_64 3:18.09.1-3.el7 docker-ce-stable
docker-ce.x86_64 3:18.09.0-3.el7 docker-ce-stable
docker-ce.x86_64 18.06.3.ce-3.el7 docker-ce-stable
docker-ce.x86_64 18.06.2.ce-3.el7 docker-ce-stable
docker-ce.x86_64 18.06.1.ce-3.el7 docker-ce-stable
docker-ce.x86_64 18.06.0.ce-3.el7 docker-ce-stable
docker-ce.x86_64 18.03.1.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 18.03.0.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.12.1.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.12.0.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.09.1.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.09.0.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.06.2.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.06.1.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.06.0.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.03.3.ce-1.el7 docker-ce-stable
docker-ce.x86_64 17.03.2.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.03.1.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.03.0.ce-1.el7.centos docker-ce-stable
//指定安装(可以不带版本号例如:sudo yum install docker-ce-19.03.4 -y)
sudo yum install docker-ce-<VERSION STRING> -y
- 启动docker
sudo systemctl start docker
- 测试docker安装是否成功
sudo docker run hello-world
- 更新docker
sudo yum update docker-ce
- 卸载docker
sudo yum remove docker-ce
- 删除images、container、挂载卷volums(需手动删除)
sudo rm -rf /var/lib/docker
三、docker的基本命令
Image: 每一个镜像就像java的类一样
Container:每一个容器就像java类的实例一样
- 拉取一个镜像:
docker pull tomcat
(不指定tag,tomcat默认最新的) - 查看本地拉取的镜像:
docker images
- 删除镜像:
docker rmi <镜像名 or id>
- 删除所有的镜像:
docker rmi -f $(docker images -ls)
- 创建一个容器:
docker run -d --name=my-tomcat -p 8080:8080 tomcat
(-d 后台运行,–name取个名字 -p指定宿主机端口映射容器中tomcat的端口) - 查看容器:
docker ps
- 删除容器:
docker rm <id>
- 删除所有容器:
docker rm $(docker ps -aq)
- 删除容器要先停止:
docker stop <id>
- 查看容器状态:
docker stats <容器id>
- 停止/启动容器:
docker stop/start <容器id>
- 查看容器详情:
docker inspect <容器id>