(9人評價)
Docker核心技術

Docker核心技術

價格 ¥ 118.00 590.00 2折
活動
會員免費學 購買課程

docker安裝mysql:

查找? ?docker search mysql

拉取? ?docker pull myql:5.6

運行 docker run -p 12345:3306 --name mysql

-v? /usr/local/mysql/conf;/etc/mysql/conf.d

-v /usr/lcoal/mysql/logs;/logs

-e MYSQL_ROOT_PASSWD=123456

-d mysql;5.6

?

[展開全文]

dockerfile案例--自定義的tomcat9

touch c.txt

vim dockerfile6

FROM? centos

MAINTAINER byk<[email protected]>

COPY c.txt /usr/local/cincontainer.txt

ADD jdk-8u171-linux-x64.tar.gz /usr/local/

ADD apache-tomcat-9.0.8.tar.gz /usr/local/

RUN yum install -y vim

ENV MYPATH /usr/local/

WORKDIR $MYPATH

ENV JAVA_HOME /usr/local/jdk1.8.0.171

ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.8

ENV CATALINA_BASE??/usr/local/apache-tomcat-9.0.8

ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOE/bin

EXPOSE 8080

#ENTRYPOINT ["/usr/local/apache-tomcat-9.0.8/bin/start.sh"]

#CMD? ["/usr/local/apache-tomcat-9.0.8/bin/start.sh", "run"]

CMD? /usr/local/apache-tomcat-9.0.8/bin/start.sh && tail -f? /usr/local/apache-tomcat-9.0.8/bin/logs/catalina.out

構建? docker build -f dockerfile6 -t tomcat9

運行 docker? run -d -p 9080:8080 --name myt9? -v? /宿主機目錄:/容器目錄? --privileged=true tomcat9

?

?

[展開全文]

dockerfile案例--onbuild

vim dockerfile4

FROM centos

RUN yum install -y curl

ENTRYPOINT ["curl", "-s", "http://ip.cn"]

ONBUILD RUN echo "father onbuild----886"

docker build -f dockerfile4 -t myip_father

===========

vim dockerfile5

FROM? myip_father

RUN yum install -y curl

CMD? ["curl", "-s", "http;//ip.cn"]

docker build -f dockerfile5 -t myip_son

[展開全文]

dockerfile體系結構--保留字指令:

FROM? --基礎鏡像,當前新鏡像是基于哪個鏡像的

MAINTAINER? --鏡像維護者的姓名和郵箱

RUN --容器構建時需要運行的命令

EXPOSE? --當前容器對外暴露出的端口

WORKDIR? --指定在創建容器后,終端默認登陸進來的工作目錄,一個落腳點

ENV? --用來在構建鏡像過程中設置環境變量

ADD? --將宿主機目錄下的文件拷貝進鏡像且add命令會自動處理url和解壓tar壓縮包

COPY? --類似add,拷貝文件和目錄到鏡像中(不會進行解壓等操作)。將從構建上下文目錄中<源路徑>的文件/目錄復制到新的一層的鏡像內的<目標路徑>位置

VOLUME? --容器數據卷,用于數據保持和持久化工作

CMD? --指定一個容器啟動時要運行的命令。dockerfile中可以有多個cmd命令,但只有最后一個生效,cmd會被docker run之后的參數替換

ENTRYPOINT? --指定一個容器啟動時要運行的命令,它的目的和cmd一樣,都是在指定容器啟動程序及參數

ONBUILD? --當構建一個被繼承的dockerfile時運行命令,父鏡像在被子繼承后父鏡像的onbuild被觸發

?

[展開全文]
docker run -it -v /src:/targer imageName

可以自動創建文件夾

?

?

docker run -it -v /src:/targer:ro imageName
 

read only

[展開全文]

docker commit

  • -m ="msg"
  • -a="author"

?

?

?

docker run -p 8888:8080 tomcat

8888容器暴露端口

8080被映射的容器內部端口

[展開全文]

查看日志

docker log c_id

查看容器內運行的進程

docker top c_id

查看容器內部細節

docker inspect c_id

進入正在運行的容器并以命令行交互

docker exec -id c_id bashShell

重新進入正在運行的容器并以命令行交互

cocker attach c_id

區別:

attach直接進入容器啟動命令的終端,不會啟動新的進程
exec在容器中打開新的終端,并且可以啟動新的進程

attach?

exec /bin/bash

?

?

?

docker cp cid:srcPath targetPath

?

[展開全文]

啟動:run

  • -i:交互模式運行
  • -t:為容器分配一個偽輸入中端
  • -d:后臺運行,即啟動守護式容器
  • -P:隨機端口映射
  • -p:指定端口映射
    • containerPort
    • hostPort:containerPort
    • ip::containerPort(雙冒號)
    • ip:hostPort:containerPort
  • --name=【name】

退出

  • exit 完全退出
  • ctrl +p +q? 后臺

查看:ps

  • -a:全部,正在運行+歷史運行
  • -l 上一次
  • -n + 【num】:最近n個
  • -q:靜默,只顯示編號
  • no-trunc:不截斷輸出

重啟:restart

停止

  • stop :正常關閉
  • kill:立即停止

刪除(已停止):rm

  • 刪除多個
    • docker rm -f $(docker ps -a -q)
    • docker ps -a -q | xargs docker rm
[展開全文]

docker

  • images 本地列表
    • -a
    • -q
    • -digests
    • no-trunc
  • search dockerhub查
    • -s 【num】
    • no-trunc
    • automated
  • pull 下載鏡像
    • 【image_name】[:TAG]
  • rmi 刪除鏡像
    • ?
    • 默認最新
    • -f
    • $(docker images -qa)
[展開全文]

相比虛擬機,取消了

  • Hypervisor接口
  • 操作系統內核
[展開全文]

docker rmi -f $(docker images -qa)批量刪除

[展開全文]

DockerFile添加

DockerFile用來描述images鏡像

用DockerFile添加:

vim DockerFile

#volume test

FROM centos

VOLUME["/DATA1","/DATA2"]

CMD echo "finished,-------success1"

CMD /bin/bash

?

?

docker build -f /mydocker/Dockerfile -t kirin/centos.

?

[展開全文]

docker commit

對外暴露指定端口

docker run -it? -p 8888:8080 tomcat??

暴露隨機端口?

docker run -it? -P tomcat

docker run -d -p 8888:8080 tomcat

?

[展開全文]

docker pull cenos

docker images

docker run image xxx

docker ps

docker ps -n 2? ? ?顯示前兩個容器

docker start id?

docker restart id

docker stop id

docker kill id

docker rm id

docker pa -a -q 顯示所有容器的id

docker rm -f $(docker pa -a -q )

?

?

?

?

[展開全文]
業界大牛親自授課
前沿技術實時更新
足不出戶學編程
關注尚硅谷微信 一鍵下載全部視頻教程

關注尚硅谷微信

一鍵下載全部視頻教程

?2018課程版權均歸谷粒學院所有  京ICP備17055252號

山西快乐10分走势图