Docker 学习

Docker 学习 自己边学边整理了一些命令
-- 镜像容器相关
-- 搜索镜像
docker search nginx
-- 镜像名称:版本,下载指定版本的镜像,默认是最新版本
docker pull nginx:1.24
-- 创建名称为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 也可以添加参数: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
-- 创建一个镜像文件,文件名是Dockerfile 创建镜像时不用添加 -f 指定,如果是其他的名称,需要这样写 -f xxxxx
touch Dockerfile
-- Docker文件内部代码
FROM:指定基础镜像,可以是多个
MAINTAINER:作者+邮箱
ENV:镜像运行环境变量
WORKDIR:工作目录,就是进到容器后默认cd 到该目录
RUN 服务器需要执行的命令
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 创建镜像命令,后面的. 是必须要的,后面就是启动容器了,跟上面一样
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

  

posted @ 2023-05-26 19:21  90的生力军  阅读(6)  评论(0编辑  收藏  举报