docker使用
系統環境聲明 Centos 7
1.1 Docker 優點
相比於傳統的虛擬化技術,容器更加簡潔高效
傳統虛擬機需要給每個 VM 安裝操作系統
1.2 Docker 的缺點
容器的隔離性沒有虛擬化強
共用 Linux 內核,安全性有先天缺陷
SELinux 難以駕馭
監控容器和容器排錯是挑戰
2.1安裝Docker
執行yum源更新命令
yum clean all
yum makecache
安裝依賴包
yum install -y yum-utils device-mapper-persistent-data lvm2
yum -y install java 版本根據需求安裝
安裝CentOS7 docker鏡像
yum-config-manager —add-repo https://download.docker.com/linux/centos/docker-ce.repo
安裝社區版docker
yum install docker-ce
查看已經安裝好的docker包
yum list installed | grep docker
2.2 啓動docker容器
systemctl start docker
ifconfig 可以看到docker的端口
2.3 測試
docker run hello-world
出現網址即爲成功
設置成開機自啓
systemctl enable docker
2.4 協議問題 docker的push下載默認使用的是HTTPS協議 私人倉庫默認使用的是HTTP
在/etc/docker/下創建/daemon.json文件
vim /etc/docker/daemon.json
{“insecure-registries”:[“192.168.1.254:5000”]}
參考
3.1 容器的操作
docker 可以查看docker客戶端所有命令選項
docker 指令 —help 可以查看指令的具體使用方法
docker ps 查看啓動的容器列表
docker ps -a 查看啓動/未啓動的容器列表
docker stop 容器名稱/ID 關閉容器
docker start 容器名稱/ID 啓動容器
docker restart 容器名稱/ID 重啓容器
docker top 容器名稱/ID 查看容器進程列表
docker rm -f 容器名稱/ID 刪除容器 容器停止之後才能刪除
docker logs -f 容器名稱/ID 查看容器內部的標準輸出
3.2 關於鏡像命令列表
docker images 查看鏡像列表
docker history 鏡像名 查看鏡像製作歷史
docker pull 鏡像名 下載鏡像
docker push 鏡像名 上傳鏡像
docker rmi -f 鏡像名/ID 刪除鏡像 注意鏡像正在使用是無法刪除的
docker search 鏡像名 搜索鏡像
docker tag 鏡像名 修改鏡像名稱和標籤
3.3 docker容器使用
docker run -it —name ts-service -p 8787:8787 —env HOSTIP=192.168.1.1 -v /home/docker/ts/config/:/tsdir/config -v /home/tr_cache_root/:/tsdir/tr_cache_root —restart=on-failure:100 192.168.1.254:5000/ts:v1.4.2
run -it 創建容器並運行
—name 爲容器指定一個名稱
-p 容器的8787端口映射到主機的8787端口
—env 使用自定義變量
-v 把指定的主機目錄映射到容器的指定目錄上去
—restart=on-failure:100 隨docker啓動而自啓容器 在100次失敗內
備註
端口衝突
netstat -auntlp | grep 端口號 或 lsof -i:端口號
然後用 kill -9 加端口的PID 殺掉
例子:
netstat -auntlp | grep 8080
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 1157/java
kill -9 1157
如果端口被重要程序佔用 容器修改主機映射的端口
如果重啓服務器容器掛掉
檢查端口有沒有衝突
檢查容器是否有沒有配置容器隨docker啓動而自啓
鏡像不能下載檢查鏡像名是否正確 鏡像倉庫是否可以訪問
注意需要掛載的目錄有沒有準備容器需要的配置文件
要掛載的目錄必須要在主機中存在
docker和selinux有衝突 會造成docker自啓失敗 把selinux設置成disabled
vim /etc/selinux/config
SELINUX=disabled