一、爲什麼用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>