Docker 學習 自己邊學邊整理了一些命令
-- 鏡像容器相關
-- 搜索鏡像
docker search nginx
-- 鏡像名稱:版本,下載指定版本的鏡像,默認是最新版本
docker pull nginx:1.24
-- 創(chuàng)建名稱為test01 的容器,-d 以后臺的形式運行,-P 自動分配端口號。
-p port1:port2 1是宿主機端口,2是容器端口 nginx:1.24 是指定版本的鏡像名稱
docker run --name=test01 -dp 80:80 nginx:1.24
-- 查看運行中的容器
docker ps
-- 查看所有容器(運行+停止)
docker ps -a
-- 刪除一個容器
docker rm -f 容器ID
-- 停止/啟動一個容器
docker stop/start 容器ID
-- 進入容器,方法1
docker exec -it 容器ID /bin/bash
-- 進入容器,方法2 此方法 ctrl+c 退出容器,容器自動退出并停止
docker attach 容器ID
-- 容器commit 生成鏡像,-m:提交的注釋,-a:提交的作者 后面是容器ID,最后是鏡像名稱和tag 名稱
docker commit -m='nginx2023' -a='yang-nginx' 942a1888d880 nginx2023:1.24-2023
-- 查看容器資源使用情況
docker stats
-- 查看文件并顯示文件大小
ls -lh
-- 卷掛載相關
-- 卷掛載 -v 外部目錄:容器目錄。
-- 具名掛載,就是只指定目錄名字而沒有具體目錄,
通常會放到"/var/lib/docker/volumes/nginx2023/_data" _data下面就是映射容器/etc/nginx目錄。
目錄下的文件互相同步,保持一致。-v 也可以添加參數(shù):ro 或者:rw 來對映射文件進行讀寫限制。
例如-v nginx2023:/etc/nginx:ro 表示只讀。
docker run -d -p 80:80 -v nginx2023:/etc/nginx --name nginx202305 nginx2023:1.24-2023
-- 匿名掛載,就是-v 不指定外部目錄地址,docker 會生成一個隨機名稱,
實際外部地址目錄,同具名掛載一樣,只是目錄名隨機"/var/lib/docker/volumes/*****/_data"
docker run -d -p 80:80 -v /etc/nginx --name nginx202305 nginx2023:1.24-2023
-- 查看容器配置相關 Mounts Source項就是映射的外部目錄位置,Mounts Destination是容器外部位置
docker inspect 64c6b9e3cbd8(容器ID)
-- 查看某個容器卷掛載情況
docker inspect nginx2023(容器name)
-- 查看所有卷的掛載情況
docker volume ls
-- Dockerfile
-- 創(chuàng)建一個鏡像文件,文件名是Dockerfile 創(chuàng)建鏡像時不用添加 -f 指定,如果是其他的名稱,需要這樣寫 -f xxxxx
touch Dockerfile
-- Docker文件內部代碼
FROM:指定基礎鏡像,可以是多個
MAINTAINER:作者+郵箱
ENV:鏡像運行環(huán)境變量
WORKDIR:工作目錄,就是進到容器后默認cd 到該目錄
RUN 服務器需要執(zhí)行的命令
EXPOSE 指定向外暴露的端口
ADD 將準備好的文件復制到容器內,壓縮文件在移動的同時會自動解壓
FROM centos:7
MAINTAINER yangyinshen<yangyinshen1024@163.com>
ENV MYPATH /usr/local
WORKDIR $MYPATH
ADD apache-tomcat-8.5.89.tar.gz $MYPATH
ADD jdk-8u361-linux-x64.tar.gz $MYPATH
ENV JAVA_HOME $MYPATH/jdk1.8.0_361
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME $MYPATH/apache-tomcat-8.5.89
ENV CATALINA_BASE $MYPATH/apache-tomcat-8.5.89
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin:$CATALINA_HOME/lib
EXPOSE 8080
CMD $CATALINA_HOME/bin/startup.sh && tail -F $CATALINA_HOME/logs/catalina.out
-- Dockerfile 創(chuàng)建鏡像命令,后面的. 是必須要的,后面就是啟動容器了,跟上面一樣
docker build -t -f Dockerfile tomcat202301:1.0 .
-- 進入容器
docker exec -it 容器ID /bin/bash
-- 如何Docker 使用的是alpine版(縮減版)它沒有bash shell,需要使用/bin/bash
docker exec -it cad20c4bedd8 /bin/sh
-p 11000:11000
#!/bin/bash
# 構建docker鏡像
tag=`date -d today +"%Y-%m-%d_%H"`
name="visual-connection-1.0.0"
image="$name:$tag"
echo "開始構建鏡像:$image"
docker build -t $image .
# 刪除老的容器
docker rm -f $name
old_image=`docker ps |grep $name`
echo "原有運行鏡像:$old_image"
stop_image=`docker rm -f $old_image`
echo "停止原有運行鏡像:$stop_image"
echo "運行鏡像:$image"
port=9185
docker run -dp 9186:9185 -p 12000:11000 --name=visual-connection-1.0.2 --restart=always -v /data/logs/visual-connection-1.0.2:/data/logs/visual-connection-1.0.2 visual-connection-1.0.0:2023-05-18_10
#docker ps
docker logs -fn 1000 $name