注意:主要參考來源
https://www.runoob.com/docker/docker-tutorial.html
一Docker的基礎介紹
Docker 可以讓開發者打包他們的應用以及依賴包到一個輕量級、可移植的容器中,容器是完全使用沙箱機制,容器性能開銷極低
分析:docker的內存使用基本是裏面部署的應用內存使用。主要便於應用隔離,發佈,複製
安裝docker之後,實際上部署項目的步驟不改變(該怎麼上傳war包就怎麼上傳),改變的是啓動關閉的命令
根據Dockerfile文件創建多個容器
二Docker的安裝部署
Docker 支持以下的 64 位 CentOS 版本:
CentOS 7
CentOS 8
更高版本...
查看本地是否安裝
docker –version
卸載舊版本
$ sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
首次安裝 Docker Engine-Community 之前,需要設置 Docker 倉庫
$ sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
$ sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
$ sudo yum install docker-ce docker-ce-cli containerd.io
要安裝特定版本的 Docker Engine-Community,請在存儲庫中列出可用版本,然後選擇並安裝:
1、列出並排序您存儲庫中可用的版本。此示例按版本號(從高到低)對結果進行排序。
$ yum list docker-ce --showduplicates | sort -r |
2、通過其完整的軟件包名稱安裝特定版本,該軟件包名稱是軟件包名稱(docker-ce)加上版本字符串(第二列),從第一個冒號(:)一直到第一個連字符,並用連字符(-)分隔。例如:docker-ce-18.09.1。
$ sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
啓動 Docker。
$ sudo systemctl start docker
通過運行 hello-world 映像來驗證是否正確安裝了 Docker Engine-Community 。
$ sudo docker run hello-world
Docker 鏡像加速
國內從 DockerHub 拉取鏡像有時會遇到困難,此時可以配置鏡像加速器。Docker 官方和國內很多雲服務商都提供了國內加速器服務,例如:
網易:https://hub-mirror.c.163.com/
阿里雲:https://<你的ID>.mirror.aliyuncs.com
七牛雲加速器:https://reg-mirror.qiniu.com
------------------------------
請在 /etc/docker/daemon.json 中寫入如下內容(如果文件不存在請新建該文件):
{"registry-mirrors":["https://reg-mirror.qiniu.com/"]}
------------------------------
之後重新啓動服務:
$ sudo systemctl daemon-reload
$ sudo systemctl restart docker
------------------------------
三Docker的基本使用
1.通過修改dockerfile文件生成鏡像(可以多個)
docker build -t docker1:v1 .
docker build -t docker2 .
-------------------------------
docker:docker命令。
build:編譯。
-t:鏡像的名字及tag,通常name:tag或者name格式;可以在一次構建中爲一個鏡像設置多個tag,參考docker build命令詳解。
Docker1:生成鏡像的名稱。
v1:生成鏡像的版本號。
.:點符號“.”表示的意思是,指定鏡像構建過程中的上下文環境的目錄
------------------------------
2.運行容器,並把容器的8080端口映射到宿主機器的8090端口上
docker run -d -p 8090:8080 docker1:v1
docker run -d -p 8090:8080 docker2
docker run -d --name tomcat1 -p 8081:8080 docker1:v1
docker start :啓動一個或多個已經被停止的容器
docker stop :停止一個運行中的容器
docker restart :重啓容器
------------------------------
使用docker stop $CONTAINER_ID來終止一個運行中的容器
docker ps # 查看真正運行的容器
docker start xxx(容器id)
docker attach xxx(進入容器) 使用這種方法,退出容器後容器會停止運行
docker exec -it xxx/bin/bash 這種方式進入容器,退出容器會正常運行
------------------------------
四Dockerfile文件例子
FROM centos MAINTAINER abc ADD ./apache-tomcat-7.0.88.tar.gz /root ADD ./jdk-7u80-linux-x64.tar.gz /root ENV JAVA_HOME /root/jdk1.7.0_80 ENV PATH $JAVA_HOME/bin:$PATH ENTRYPOINT /root/apache-tomcat-7.0.88/bin/startup.sh && tail -F /root/apache-tomcat-7.0.88/logs/catalina.out |
FROM命令,用法,FROM <image>:<tag>,FROM命令告訴docker我們構建的鏡像是以哪個(發行版)鏡像爲基礎的
ENV命令,用法,ENV <key> <value>,ENV命令主要用於設置容器運行時的環境變量
ADD命令,用法,ADD <src> <dest>,ADD主要用於將宿主機中的文件添加到鏡像中