Docker HUB
https://hub.docker.com/u/linsdom/ #docker
常用命令
0、設(shè)置阿里云鏡像加速
1、修改/etc/docker/daemon.json文件配置,沒有則新建;
{
"registry-mirrors": ["https://72idtxd8.mirror.aliyuncs.com"]
}
2、重啟daemon;
systemctl daemon-reload
3、重啟docker服務(wù);
systemctl restart docker
一、幫助命令
docker --h #查看幫助
docker version #查看版本
docker info #查看詳細信息
二、鏡像命令
1、查看鏡像幫助
docker image --help
docker images
2、列出所有鏡像
docker images -a , --all 列出所有鏡像
docker images -q , --quiet 只顯示鏡像的id
3、搜索鏡像
search <name> #如 docker search MySQL
#可選項,通過搜索來過濾
--filter=STARS=3000 如 docker search mysql -s 3000 #搜索stars超3K的
4、下載鏡像
docker pull 下載鏡像
如:docker pull mysql #如果不寫tag,默認就是latest
docker pull mysql:5.7 #指定下載版本
5、 docker rmi #刪除鏡像
docker rmi -f <鏡像id或名稱> #單個刪除 如:docker rmi -f 121212
docker rmi -f $(docker imsages -aq) # 刪除所有的容器
三、容器命令
說明:有了鏡像就可以創(chuàng)建容器,linux,下載一個centos鏡像來學(xué)習(xí)
1、下載容器
docker pull <容器名稱> 如: docker pull centos
2、新建容器并啟動
docker run [可選參數(shù)] <image 名稱>
#參數(shù)說明
--name "" 容器名稱 如:Tomcat1
-d 后臺方式運行
-it 使用交互方式運行,進入容器查看內(nèi)容
-p 指定容器的端口 -p 8080:8080
啟動并進入容器 例: docker run -it centos /bin/bash
啟動后臺動行的容器 例: docker run -it -d centos
3、列出所有容器
docker ps #列出所有運行的容器
douker ps -a #查看曾經(jīng)運行的容器
docker ps -n=? #顯示最近創(chuàng)建的容器
docker ps -q #只顯示容器的編號
4、刪除容器
docker rm <容器id> 刪除指定的容器 如 :docker rm 15155
docker rm -f $(docker ps -aq) 刪除所有容器
5、進入或退出容器
docker attach id #重新進入容器
exit #直接退出容器,容器會停止
Ctrl + P + Q # 退出容器 不停止運行
6、啟動和停止容器
docker start <容器id> #啟動容器
docker restart <容器id> #重啟容器
docker stop <容器id> #停止容器
docker kill <容器id> #強制停止容器
例:停止所有容器 : docker -ps -aq docker stop $(docker ps -aq)
其他常用命令
** 1、后臺互動容器**
docker run -d center
#常見的坑 docker 容器使用后臺運行,就必須有一個前臺進程,如果沒有就會自動停止
2、查看日志命令
docker logs --help 幫助
docker logs -f -t --tail <條數(shù)> <容器id> # docker logs -f -t --tail 10 ee12 #顯示指定行數(shù)的日志
docker logs -f -t <容器id> #顯示所有日志
-tf # 顯示日志
--tail number #指定條數(shù)
3、顯示容器內(nèi)部進程信息
docker top <容器id> # docker top 0c3ffc237acc
4、查看容器內(nèi)部信息
docker inspect <容器id> #docker inspect 0c3ffc237acc
5、進入當(dāng)前運行的容器
docker attach <容器id> #docker attach 0c3ffc237acc
docker exec -it <容器id> /bin/bash #docker exec -it 0c3ffc237acc /bin/bash
兩種方式的區(qū)別:
exec 進入容器后開啟一個新的終端
attach 進入當(dāng)前正在運行的終端
6、容器和主機間的內(nèi)容拷貝
一、docker cp <容器id:容器內(nèi)路徑> 目的主機路徑
例:docker cp 0c3ffc237acc:/home/test.JAVA ~/
二、docker cp 目的主機路徑 <容器id:容器內(nèi)路徑>
例:docker cp /root/copy.java 0c3ffc237acc:/home/
操作實例
一、安裝Nginx
1、搜索nginx
docker search nginx
2、下載鏡像
docker pull nginx
3、啟動鏡像
docker run -d --name nginx01 -p:3344:80 nginx
-d 后臺運行 --name 重命名 -p指定端口 3344外部端口 80 內(nèi)部端口
4、自測測試
curl localhost:3344
5、進入容器
docker exec -it nginx01 /bin/bash
一、安裝Tomcat
1、搜索查看tomcat版本
到 https://hub.docker.com/
2、安裝tomcat
douker -run -it tomcat:9.0 #其他方法 用于測試用完即刪 douker -run -it --rm tomcat:9.0
3、啟動tomcat
docker run -d -p 3355:8080 --name tomcat01 tomcat
4、進入tomcat鏡像
docker exec -it tomcat01 /bin/bash
5、數(shù)據(jù)卷容器
數(shù)據(jù)共享
docker run -it -name centos02 --volumes-from centos01
centos02 能獲取到centos01掛截的內(nèi)容
Docker 可視化面板 protalner
安裝和啟動
docker run -d -p 8088:9000
--restart=always -v /var/run/docker.sock:/var/run/docker.sock --privileged=true portainer/portainer
啟動
訪問地址:192.168.31.30:8088
Docker鏡像
Docker容器數(shù)據(jù)卷
1、使用數(shù)據(jù)卷
方式一 :直接使用命令掛截 -v
docker run -it -v 主機目錄:容器內(nèi)目錄 鏡像名稱
例: docker run -it -v /home/test:/home centos
2.查看所有數(shù)據(jù)卷
docker volume ls
3、查看數(shù)據(jù)卷所在位置
docker volume inspect <卷id>
具名掛載
docker run -it -v <自定義名稱>:容器內(nèi)目錄 鏡像名稱
實戰(zhàn) 安裝Mysql 掛截文件
docker run -d -p 3306:3306 -v /home/mysql/conf.d:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSword=123456 --name mysql01 mysql:5.7
-p 映射端口
-v 掛載目錄
-e 配置能數(shù)
--name 指定容器名稱
mysql:5.7 鏡像版本
Dockerfile
FROM #基礎(chǔ)鏡像
MAINTAINER #鏡像作者
RUN #鏡像構(gòu)建的時候需要運行的命令
ADD #添加內(nèi)容
WORKDIR #鏡像的工作目錄
VOLUME #掛截的目錄
EXPOSE #保留端口配置
CMD #指定這個容器在啟動時要運行的命令,只有最后一個有效
ENTRYPOINT #指定這個容器啟動時候要運行的命令,可以追加命令
ONBULID #當(dāng)構(gòu)建一個被繼承 Dockerfile這個時候會運行 ONBUILD 的指命令
COPY #類 ADD 將我們文件拷到鏡像中
ENV #構(gòu)建的時候設(shè)置環(huán)鏡變量!
1、創(chuàng)建dockerfile文件
2、構(gòu)建image
docker build dockerifle文件路徑 -t 鏡像名稱:[tag] .
3、運行鏡像
docker run -it mydocker:0.1
4、查看鏡像構(gòu)建過程
doucher history <鏡像id>
SpringBoot微服務(wù)打包Docker鏡像
1、構(gòu)建Springboot項目
2、打包應(yīng)用
3、編寫dockerfile
FROM java:8
COPY *.jar /App.jar
CMD ["--------server.port=8080-------"]
EXPOSE 8080
ENTRYPOINT ["java","-jar","/app.jar"]
4、構(gòu)建鏡像
docker build dockerfile -t servie:0.1 .
docker build -t chzzservic .
5、發(fā)布運行
docker run -d -P -it chzzservic