docker安裝,鏡像與容器操作

docker相關組件介紹

Docker使用C/S架構,Client通過接口與Server進程通信實現容器的構建,運行和發佈,如圖:
在這裏插入圖片描述

Host(Docker 宿主機)

安裝了Docker程序,並運行了Docker daemon的主機。

Docker daemon(Docker 守護進程):

運行在宿主機上,Docker守護進程,用戶通過Docker client(Docker命令)與Docker daemon交互。

Images(鏡像):

將軟件環境打包好的模板,用來創建容器的,一個鏡像可以創建多個容器

Containers(容器):

Docker的運行組件,啓動一個鏡像就是一個容器,容器與容器之間相互隔離,並且互不影響。

Docker Client(Docker 客戶端)

Docker命令行工具,用戶是用Docker Client與Docker daemon進行通信並返回結果給用戶。也可以使用其他工具通
過Docker Api 與Docker daemon通信。

Registry(倉庫服務註冊)

經常會和倉庫(Repository)混爲一談,實際上Registry上可以有多個倉庫,每個倉庫可以看成是一個用戶,一個用戶
的倉庫放了多個鏡像。倉庫分爲了公開倉庫(Public Repository)和私有倉庫(Private Repository),最大的公開倉庫是
官方的Docker Hub,國內也有如阿里雲、時速雲等,可以給國內用戶提供穩定快速的服務。用戶也可以在本地網絡
內創建一個私有倉庫。當用戶創建了自己的鏡像之後就可以使用 push 命令將它上傳到公有或者私有倉庫,這樣下次
在另外一臺機器上使用這個鏡像時候,只需要從倉庫上 pull 下來就可以了。

docker安裝

以Centos7爲例,且Docker 要求操作系統必須爲64位,且centos內核版本爲3.1及以上。
查看系統內核版本信息:uname -r

1.安裝依賴軟件包
yum install -y yum-utils device-mapper-persistent-data lvm2

2.設置yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

3.更新yum軟件包索引
yum makecache fast

4.安裝docker
yum install docker-ce -y

5.配置阿里鏡像加速

  1. 註冊登錄開通阿里雲容器鏡像服務
  2. 查看控制檯,找到鏡像加速器並複製自己的加速器地址
  3. 找到/etc/docker目錄下的daemon.json文件,沒有則直接 vi daemon.json(docker文件夾也可能沒有)
  4. 加入以下配置: { 「registry-mirrors」: [「https://zfzbet67.mirror.aliyuncs.com」] }
  5. 通知systemd重載此配置: systemctl daemon-reload
  6. 重啓docker服務: systemctl restart docker

鏡像操作

help:
cker COMMAND --help

查找鏡像:
docker search 關鍵詞
例子:docker search tomcat

下載鏡像 :
docker pull 鏡像名:TAG
( Tag表示版本,有些鏡像的版本顯示latest,爲最新版本,如果是最新版TAG可省)
例子:docker pull tomcat

查看鏡像:
docker images

刪除鏡像:
docker rmi -f 鏡像ID或者鏡像名:TAG

獲取元信息:
docker inspect 鏡像ID或者鏡像名:TAG

容器操作

運行:

docker run --name 容器名 -i -t -p 主機端口:容器端口 -d -v 主機目錄:容器目錄:ro 鏡像ID或鏡像名:TAG
–name 指定容器名,可自定義,不指定自動命名
-i 以交互模式運行容器
-t 分配一個僞終端,即命令行,通常-it組合來使用
-p 指定映射端口,講主機端口映射到容器內的端口
-d 後臺運行容器
-v 指定掛載主機目錄到容器目錄,默認爲rw讀寫模式,ro表示只讀

例子: docker run --name lrytomcat -p 80:8080 -d tomcat(宿主機到容器的端口映射80:8080)

容器列表:
docker ps -a -q
docker ps查看正在運行的容器
-a 查看所有容器(運行中、未運行)
-q 只查看容器的ID

啓動容器:
docker start 容器ID或容器名

停止容器:
docker stop 容器ID或容器名

刪除容器:
docker rm -f 容器ID或容器名

查看日誌:
docker logs 容器ID或容器名

進入正在運行容器
docker exec -it 容器ID或者容器名 /bin/bash

拷貝文件:
docker cp 主機文件路徑 容器ID或容器名:容器路徑( 主機中文件拷貝到容器中 )

docker cp 容器ID或容器名:容器路徑 主機文件路徑 (容器中文件拷貝到主機中)

獲取容器元信息:
docker inspect 容器ID或容器名

tomcat安裝示例

docker pull tomcat
docker run --name lrytomcat -p 80:8080 -d tomcat
訪問瀏覽器出現tomcat主頁

問題1:
docker啓動tomcat容器訪問端口顯示404的問題,頁面顯示 源服務器未能找到目標資源的表示或者是不願公開一個已經存在

關閉防火牆
systemctl stop firewalld.service
systemctl disable firewalld.service
docker exec -it lrytomcat /bin/bash
cd webapps
rm -f webapps
cp -r webapps.dist webapps

問題2:
IPv4 forwarding is disabled. Networking will not work.

在宿主機上執行 echo 「net.ipv4.ip_forward=1」 >>/usr/lib/sysctl.d/00-system.conf systemctl restart network && systemctl restart docker docker run --name lrytomcat -p 80:8080 -d tomcat