linux中dockers容器技術介紹?
linux中Dockers容器技術其實就是管理熊雄起的引擎,是應用打包部署平臺,可以為數據軟件的應用提供基礎。
什么是docker?Docker就好比傳統的貨運集裝箱
Docker是管理容器的引擎
Docker為應用打包 部署平臺,而非單純的虛擬化技術
SaaS(app,云盤,微店,網站) PaaS(redis,nysql,nginx)是基于Docker的云平臺
VM VS Container
?
關于虛擬機
virsh 命令管理
virt_manager 圖形化管理
libvirtd 一個管理接口
qemu-kvm(cpu/mem) 完全虛擬化
如果停掉libvirtd
systemctl stop libvirtd
1
1
管理化命令不能工作,但是虛擬機依然存在,依然工作
容器
容器和物理機共享內核和一些重要的文件系統
比虛擬機更小,更輕
傳統虛擬機和容器技術對比
?
容器是如何工作的
?
創建一個容器
?
yum install wget -y
cd /etc/yum.repos.d/
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
1
2
3
1
2
3
?
要解決依賴性
在阿里云平臺下載
然后下載的包和rhel7.6 yum源里的包一起解決依賴性
yum install docker-ce container-selinux-2.77-1.el7.noarch.rpm -y
systemctl start docker
1
2
1
2
注意:docker啟動前關閉防火墻和關閉selinux
docker info 查看容器信息
1
1
發現有兩個警告
解決:
sysctl -a | grep bridge-nf-call-iptables
vim /etc/sysctl.d/bridge.conf
1
2
1
2
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
sysctl --system 生效
1
2
3
1
2
3
所有的容器數據都在/var/lib/docker里面
?
如果想要用普通用戶做docker需要給這個文件給權限
yum install bash-* -y 為了table 補齊命令
1
1
用容器部署一個nginx服務
一般拉取太慢,設置一個加速器
?
cd /etc/docker/
vim daemon.json
systemctl daemon-reload
systemctl restart docker
1
2
3
4
1
2
3
4
docker search nginx 尋找鏡像
docker pull nginx 拉取鏡像(一般以服務名的是官方提供的)
docker run -d --name nginx nginx 部署容器
docker ps
1
2
3
4
1
2
3
4
?
docker inspect nginx 查看nginx容器信息
1
1
?
用ip addr show 命令查看橋接到docker0
yum install bridge-utils 橋接命令
brctl show
1
2
1
2
?
nginx部署成功
?
此時,nginx只能內部訪問
如果需要外部訪問,則刪掉原nginx容器,用端口映射部署nginx
-d : 打入后臺
-p 80:80 : 80映射80端口
docker run -d --name nginx -p 80:80 nginx
1
1
nginx history nginx:latest 查看nginx鏡像信息
iptables -t nat -nL
1
2
1
2
訪問本機轉發到172.17.0.2:80上去
?
用ps ax 或 top 或 netstat -antlp 查看 docker就是個進程
網頁訪問虛擬機ip 可以看到nginx服務。