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<[email protected]> 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
标签:容器,name,--,学习,nginx,镜像,Docker,docker From: https://www.cnblogs.com/isyysblog/p/17435633.html