Docker 技術筆記

注意:主要參考來源

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

docker-ce.x86_64  3:18.09.1-3.el7                     docker-ce-stable
docker-ce.x86_64  3:18.09.0-3.el7                     docker-ce-stable
docker-ce.x86_64  18.06.1.ce-3.el7                    docker-ce-stable
docker-ce.x86_64  18.06.0.ce-3.el7                    docker-ce-stable

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主要用於將宿主機中的文件添加到鏡像中

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章