Docker容器概念
-
Docker
容器的基礎為Linux容器(LXC)
技術入偷,輕量化級別的技術廓译。Docker為C/S架構沙绝。 -
DevOps
的優(yōu)勢:更快速的交付和部署捌归,更高效的資源利用,更輕松的遷移和擴展告喊,更簡單的更新管理麸拄。 - 與傳統(tǒng)虛擬機的比較:很快,對系統(tǒng)資源需求很少黔姜,虛擬技術在操作系統(tǒng)層面拢切。
- Docker中的幾個概念:
- 鏡像(image):類似于虛擬機鏡像,為一個面向
Docker
引擎的只讀模板秆吵,包含子文件系統(tǒng)淮椰。 - 容器(Container):輕量化的沙箱,
Docker
利用容器來運行和隔離應用纳寂,從鏡像創(chuàng)建实苞。 - Docker倉庫:存放鏡像的地方,需要與注冊服務器區(qū)分(存放倉庫的地方)烈疚。
- 鏡像(image):類似于虛擬機鏡像,為一個面向
Docker容器安裝
-
CentOS 7
安裝過程如下:yjf@vbox:~$ uname -r #確保內核版本大于3.10,確定.CentOS7滿足 yjf@vbox:~$ sudo yum update #更新源 yjf@vbox:~$ sudo yum remove docker docker-common docker-selinux docker-engine #卸載已安裝的相關docker產(chǎn)品 yjf@vbox:~$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2 #安裝驅動 yjf@vbox:~$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo #設置yum源 yjf@vbox:~$ yum list docker-ce --showduplicates | sort -r #列出可用的docker版本 yjf@vbox:~$ sodu yum install docker-ce #默認安裝最新版 新建文件:/etc/docker/daemon.json 配置國內鏡像:{ "registry-mirrors":["https://registry.docker-cn.com"]} yjf@vbox:~$ sudo gpasswd -a yjf docker #當前用戶加入docker組 輸入docker相關命令無需要sudo yjf@vbox:~$ systemctl start docker yjf@vbox:~$ systemctl enable docker //啟動并設置跟隨系統(tǒng)啟動
-
Ubuntu 18.04
安裝過程如下:yjf@vbox:~$ sudo apt install docker.io
-
配置國內鏡像,為使docker容器鏡像下載速度快聪轿,需要配置國內鏡像源爷肝,配置如下(
/etc/docker/目錄下新建文件daemon.json
):{ "registry-mirrors": ["https://registry.docker-cn.com"] }
配置完成后使用
sudo service docker restart
重啟docker服務。
IDEA配置Docker遠程連接
確保IDEA安裝
Docker intergration
插件。-
修改
/lib/systemd/system/docker.service
文件灯抛,其中ExecReload開頭的行修改為如下:ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
運行命令
sudo systemctl daemon-reload
和命令sudo systemctl restart docker
進行服務的重啟金赦。-
在IDEA的
File->Settings->Build,Execution,Deployment->Docker
進行配置如下:
Docker基本使用
-
鏡像相關命令:
yjf@vbox:~$ sudo docker search tomcat //表示在hub.docker.com搜索tomcat的相關鏡像.建議上hub.docker.com上搜索 因為在該網(wǎng)站上會有該鏡像的詳細操作 #列出本機上目前已存在的鏡像 重要概念tag標簽 類似于版本號之類 yjf@vbox:~$ sudo docker images //列出本機上目前已存在的鏡像 REPOSITORY TAG IMAGE ID CREATED SIZE maven latest 0e88a56d4d2e 2 days ago 634MB #從docker上拉取ubuntu鏡像.未帶:后字符表示拉取的是latest版本 可通過ubuntu:14.04 拉取指定tag的版本 yjf@vbox:~$ sudo docker pull ubuntu #從本機電腦上刪除指定的鏡像,image可以指定鏡像名或者imageId yjf@vbox:~$ sudo docker rmi maven #獲取指定鏡像的詳細信息 yjf@vbox:~$ sudo docker inspect maven
-
容器的相關操作:
-
容器的運行对嚼,使用
docker run
命令夹抗。# 容器的運行 通用命令:docker run 鏡像名 [command] [args] 一次運行 之后容器就關閉 yjf@vbox:~ sudo docker run ubuntu echo "HelloWorld" # 容器的交互運行 -i:表示保持標準的輸入輸出打開 -t: 為容器分配一個偽終端 --name:表示為容器取名 # 在容器運行后會分配一個終端進行容器操作 在容器內終端鍵入命令exit后則會退出該容器 yjf@vbox:~ sudo docker run -ti --name u1 ubuntu /bin/bash # 容器的停止和刪除等操作 # 查看容器運行狀態(tài) sudo docker ps 列出運行中的容器 -a參數(shù)表示所有的容器 包括已停止的容器. yjf@vbox:~ sudo docker ps yjf@vbox:~ sudo docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a52cf5cb2433 ubuntu "/bin/bash" 8 seconds ago Exited (0) 4 seconds ago u1 # 停止容器,針對運行的容器 sudo docker stop 容器id/容器名 # 刪除容器纵竖,只能對已停止的容器執(zhí)行刪除操作 sudo docker rm 容器id/容器名 # 啟動容器漠烧,針對已停止的容器可以執(zhí)行sudo docker start 容器id/容器名重新啟動 yjf@vbox:~ sudo docker start u1 #啟動 yjf@vbox:~ sudo docker stop u1 #停止 yjf@vbox:~ sudo docker rm u1 #刪除
-
容器的守護態(tài)運行,
-d
選項靡砌。# 守護運行會轉入后臺運行 返回容器的id 使用docker ps查看會顯示運行狀態(tài) yjf@vbox:~ sudo docker run --name=yuan -d ubuntu /bin/sh -c "while true; do echo hello world;sleep 1; done" # docker logs 命令用于顯示容器內部的日志 支持以下選項: # -f選項顯示日志 使用CTRL+C終止 --tail n 顯示最近的n行日志 0表示最新的日志 yjf@vbox:~ sudo docker logs -f yuan yjf@vbox:~ sudo docker logs -f --tail 0 yuan # 查看容器內的進程 docker top 容器id/容器名 yjf@vbox:~ sudo docker top yuan # 守護容器內部運行進程,可運行后臺任務和交互式任務已脓,交互式任務經(jīng)常使用終端進入容器內部的一種方式 yjf@vbox:~ sudo docker exec -ti yuan /bin/bash
-