docker基础入门和docker compose实战
Docker運維部署
docker官網:https://www.docker.com/
文檔:https://docs.docker.com/ Docker的文檔是超級詳細的!
倉庫:https://hub.docker.com/
- Docker
- Docker安裝與配置
- Docker鏡像容器操作
- Docker容器數據卷
- Dockerfile
- Docker-compose
Docker
鏡像(image):
docker鏡像就好比是一個目標,可以通過這個目標來創建容器服務,tomcat鏡像==>run==>容器(提供服務器),通過這個鏡像可以創建多個容器(最終服務運行或者項目運行就是在容器中的)。
容器(container):
Docker利用容器技術,獨立運行一個或者一組應用,通過鏡像來創建的.
啟動,停止,刪除,基本命令
目前就可以把這個容器理解為就是一個簡易的 Linux系統。
倉庫(repository):
倉庫就是存放鏡像的地方!
倉庫分為公有倉庫和私有倉庫。(很類似git)
Docker Hub是國外的。
阿里云…都有容器服務器(配置鏡像加速!)
Docker安裝與配置
安裝Docker
要求
1.Linux要求內核3.0以上
2.CentOS 7
配置阿里云鏡像加速
- 登錄阿里云找到容器服務
- 找到鏡像加速地址
- 配置使用
Docker鏡像容器操作
幫助命令
docker version #顯示docker的版本信息。docker info #顯示docker的系統信息,包括鏡像和容器的數量docker 命令 --help #幫助命令鏡像命令
docker images #查看所有本地主機上的鏡像 可以使用docker image ls代替docker search #搜索鏡像docker pull #下載鏡像 docker pull 鏡像名[:tag],如果不寫tag,默認就是latesdocker rmi #刪除鏡像 docker rmi -f 鏡像id #刪除指定id的鏡像 docker rmi -f $(docker images -aq) #刪除全部的鏡像 docker images #查看所有本地的主機上的鏡像 # 解釋 #REPOSITORY # 鏡像的倉庫源 #TAG # 鏡像的標簽(版本) ---lastest 表示最新版本 #IMAGE ID # 鏡像的id #CREATED # 鏡像的創建時間 #SIZE # 鏡像的大小# 可選項 Options:-a, --all Show all images (default hides intermediate images) #列出所有鏡像-q, --quiet Only show numeric IDs # 只顯示鏡像的id# docker images -a #列出所有鏡像詳細信息 # docker images -aq #列出所有鏡像的id容器命令
docker run 鏡像id #新建容器并啟動docker ps 列出所有運行的容器 docker container listdocker rm 容器id #刪除指定容器docker start 容器id #啟動容器 docker restart 容器id #重啟容器 docker stop 容器id #停止當前正在運行的容器 docker kill 容器id #強制停止當前容器新建容器并啟動
docker run [可選參數] image | docker container run [可選參數] image #參書說明 --name="Name" #容器名字 tomcat01 tomcat02 用來區分容器 -d #后臺方式運行 -it #使用交互方式運行,進入容器查看內容 -p #指定容器的端口 -p 8080(宿主機):8080(容器)-p ip:主機端口:容器端口-p 主機端口:容器端口(常用)-p 容器端口容器端口 -P(大寫) 隨機指定端口列出所有運行的容器
docker ps 命令 #列出當前正在運行的容器-a, --all #列出當前正在運行的容器 + 帶出歷史運行過的容器-n=?, --last int #列出最近創建的?個容器?為1則只列出最近創建的一個容器-q, --quiet #只列出容器的編號退出容器
exit #容器直接退出 ctrl +P +Q #容器不停止退出 ---注意:這個很有用的操作刪除容器
docker rm 容器id #刪除指定容器,不能刪除正運行的容器,若強制刪除 rm -rf docker rm -f $(docker ps -aq) #刪除所有的容器 docker ps -a -q|xargs docker rm #刪除所有的容器啟動和停止容器的操作
docker start 容器id #啟動容器 docker restart 容器id #重啟容器 docker stop 容器id #停止當前正在運行的容器 docker kill 容器id #強制停止當前容器常用其他命令
后臺啟動命令 docker run -d 鏡像名查看日志 docker logs --help #模擬日志 docker run -d centos /bin/sh -c "while true;do echo 6666;sleep 1;done" #顯示日志-tf #顯示日志信息(一直更新)--tail number #需要顯示日志條數 docker logs -t --tail n 容器id #查看n行日志 docker logs -ft 容器id #跟著日志查看容器中進程信息 docker top 容器id查看鏡像的元數據 docker inspect 容器id進入當前正在運行的容器 docker exec -it 容器id bashshell # 方式二 docker attach 容器id #docker exec #進入當前容器后開啟一個新的終端,可以在里面操作(常用) #docker attach # 進入容器正在執行的終端從容器內拷貝到主機上 docker cp 容器id:容器內路徑 主機目的路徑docker run -it --rm 鏡像名 一般是用來測試,用完就刪除commit鏡像 docker commit 提交容器成為一個新的副本 # 命令和git原理類似 docker commit -m="描述信息" -a="作者" 容器id 目標鏡像名:[版本TAG] docker commit -a="kuangshen" -m="add webapps app" 容器id tomcat02:1.0小結:
容器數據卷
將應用和環境打包成一個鏡像!
數據?如果數據都在容器中,那么我們容器刪除,數據就會丟失!需求:數據可以持久化
MySQL,容器刪除了,刪庫跑路!需求:MySQL數據可以存儲在本地!
容器之間可以有一個數據共享技術!Docker容器中產生的數據,同步到本地!
這就是卷技術!目錄的掛載,將我們容器內的目錄,掛載到Linux上面!
三種掛載: 匿名掛載、具名掛載、指定路徑掛載
-v 容器內路徑 #匿名掛載
-v 卷名:容器內路徑 #具名掛載
-v /宿主機路徑:容器內路徑 #指定路徑掛載 docker volume ls 是查看不到的
Dockerfile
Dockerfile 就是用來構建docker鏡像的構建文件!命令腳本!
通過這個腳本可以生成鏡像,鏡像是一層一層的,腳本是一個個的命令,每個命令都是一層!
- 編寫一個dockerfile文件
規則
1、每個保留關鍵字(指令)都是必須是大寫字母
2、執行從上到下順序
3、#表示注釋
4、每一個指令都會創建提交一個新的鏡像曾,并提交!
- docker build 構建稱為一個鏡像
-
docker run運行鏡像
運行自己的鏡像 略… -
docker push發布鏡像(DockerHub 、阿里云倉庫)
發布到 阿里云鏡像服務上
看官網 很詳細https://cr.console.aliyun.com/repository/
DockerFile的指令
FROM # from:基礎鏡像,一切從這里開始構建 MAINTAINER # maintainer:鏡像是誰寫的, 姓名+郵箱 RUN # run:鏡像構建的時候需要運行的命令 ADD # add:步驟,tomcat鏡像,這個tomcat壓縮包!添加內容 添加同目錄 WORKDIR # workdir:鏡像的工作目錄 VOLUME # volume:掛載的目錄 EXPOSE # expose:保留端口配置 CMD # cmd:指定這個容器啟動的時候要運行的命令,只有最后一個會生效,可被替代 ENTRYPOINT # entrypoint:指定這個容器啟動的時候要運行的命令,可以追加命令 ONBUILD # onbuild:當構建一個被繼承DockerFile這個時候就會運行onbuild的指令,觸發指令 COPY # copy:類似ADD,將我們文件拷貝到鏡像中 ENV # env:構建的時候設置環境變量!
DockerCompose
Docker Compose是一個用來定義和運行復雜應用的Docker工具。一個使用Docker容器的應用,通常由多個容器組成。使用Docker Compose不再需要使用shell腳本來啟動容器。?
Compose 通過一個配置文件來管理多個Docker容器,在配置文件中,所有的容器通過services來定義,然后使用docker-compose腳本來啟動,停止和重啟應用,和應用中的服務以及所有依賴服務的容器,非常適合組合使用多個容器進行開發的場景。
DockerCompose指令
version 指定本 yml 依從的 compose 哪個版本制定的build指定為構建鏡像上下文路徑context:上下文路徑。dockerfile:指定構建鏡像的 Dockerfile 文件名。args:添加構建參數,這是只能在構建過程中訪問的環境變量。labels:設置構建鏡像的標簽。target:多層構建,可以指定構建哪一層。command 覆蓋容器啟動的默認命令。container_name 指定自定義容器名稱,而不是生成的默認名稱。environment 添加環境變量。expose 暴露端口,但不映射到宿主機,只被連接的服務訪問。image 指定容器運行的鏡像。restartno:是默認的重啟策略,在任何情況下都不會重啟容器。always:容器總是重新啟動。on-failure:在容器非正常退出時(退出狀態非0),才會重啟容器。unless-stopped:在容器退出時總是重啟容器,但是不考慮在Docker守護進程啟動時就已經停止了的容器DockerCompose命令
docker-compose up //啟動yml文件定義的 containerdocker-compose up -d //后臺運行docker-compose up --help //查看up幫助docker-compose -f docker-compose.yml up //-f 指定yml文件docker-compose stop //停止docker-compose start docker-compose ls //查看docker-compose down //停止刪除docker-compose psdocker-compose imagesdocker-compose exec {service_name} {bash}總結
以上是生活随笔為你收集整理的docker基础入门和docker compose实战的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 对字符串中的数值排序
- 下一篇: Collection中的基本方法