应用命令(docker/podman/nohup)

===============linux常用====================

查看系统版本信息: lsb_release -a

查看端口号进程:netstat -nlp | grep 8080

===============docker====================

镜像打包

docker build --no-cache -t registry-tcnp.zrar.com/tcnp_gzl-bpm-runtime/gzl-bpm-runtime:1.0.0 gxb-bpm-runtime/

镜像运行

docker run -e JAVA_OPTS='-server -Xms1024m -Xmx1024m' -d --name runtime -p 9086:8080 registry-tcnp.zrar.com/tcnp_gzl-bpm-runtime/gzl-bpm-runtime:1.0.0

操作服务(停止、启动、删除)

docker container stop runtime
docker container rm runtime
docker container start runtime
删除过期镜像
docker rmi $(docker images | grep "none" | awk '{print $3}')

# 启动所有镜像
docker start $(docker ps -a -q)
 
# stop停止所有容器
docker stop $(docker ps -a -q)
 
# remove删除所有容器
docker rm $(docker ps -a -q) 
 
# 删除所有镜像
docker rmi $(docker images -q)

#清理容器与镜像
docker system prune -f --volumes

镜像传输

# 将我们之前的镜像打包 tar文件可以任意命名 后面的镜像文件需要一模一样
docker save -o nginx.tar nginx:1.0

这时候将文件传输给别的机器,让其加载即可,命令如下。
docker load -i mynginx.tar


nohup java -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m -Xms1024m -Xmx1024m -Xmn256m -XX:SurvivorRatio=8 -XX:+UseConcMarkSweepGC -jar uc.jar --spring.profiles.active=product > logs/uc.log 2>&1 &

# 这表示容器开启自启动 
docker run -d --restart=always nginx


docker run -d --name easyweb-form -e --spring.profiles.active=product -p 6081:6081 registry-easyweb-wf-form/easyweb-wf-form:1.0.0
docker run -d --name $DOCKER_NAME -e --spring.profiles.active=product  -p $A_POST:$B_POST $API_RESP-$API_NAME/$API_NAME:$API_VERSION

给容器添加hosts

docker run -e JAVA_OPTS='-server -Xms256m -Xmx256m -Dspring.profiles.active=test' -d --add-host=master:192.168.6.166 --name oss -p 8100:8100 shengding.com/oss:1.0.0
给容器指定mac地址
docker run -e JAVA_OPTS='-server -Xms128m -Xmx128m' -d --name gateway --mac-address=02:42:AC:11:12:03 -p 8089:8089 shengding.com/gateway:1.0.0

进入容器命令

#进入docker容器
docker exec -it containerID /bin/bash

#查询容器内部文件夹
docker exec container_test ls
#从容器内部拉文件
docker cp container_test:/ldap.jar - > ./ldap.jar


例如:现有一个ID为cff5c18cb586的ubuntu容器,并且要将文件从容器中的路径/usr/src/app/file.txt 复制到本地计算机上的 /home/username/Desktop/folder,则可以使用命令:

docker cp cff5c18cb586:/usr/src/app/file.txt home/username/Desktop/folder/

如果要将文件粘贴到本地计算机的当前目录中,则只需使用命令:

docker cp cff5c18cb586:/usr/src/app/file.txt . (Don’t forget the dot)

如果要将所有文件从容器中的特定文件夹复制到本地计算机中的文件夹,请使用以下命令:

docker cp cff5c18cb586:/usr/src/app/ home/username/Desktop/folder/

Dockerfile 编写以及bulid\run命令

本人dockerhub上dockerId luke880

1、----------------------------------------------------------------------------------------------
制作jdk Dockerfile

FROM centos:7
MAINTAINER Luke

# 下载jdk1.8
ADD jdk-8u221-linux-x64.tar.gz /usr/local/

ENV JAVA_HOME /usr/local/jdk1.8.0_221
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH $PATH:$JAVA_HOME/bin

制作alpine-jdk

#1.指定基础镜像,并且必须是第一条指令
FROM alpine:latest
#FROM alpine:3.10

#2.指明该镜像的作者和其电子邮件
MAINTAINER luke"luke880@126.com"

#3.在构建镜像时,指定镜像的工作目录,之后的命令都是基于此工作目录,如果不存在,则会创建目录
WORKDIR /luke/jdk

#4.将一些安装包复制到镜像中,语法:ADD/COPY <src>... <dest>
## ADD与COPY的区别:ADD复制并解压,COPY仅复制
## 注意~~~上传的瘦身后的jre
ADD jre-8u251-linux-x64.tar.gz /luke/jdk/
## glibc安装包如果从网络下载速度实在是太慢了,先提前下载复制到镜像中
COPY glibc-2.31-r0.apk /luke/jdk/
COPY glibc-bin-2.31-r0.apk /luke/jdk/
COPY glibc-i18n-2.31-r0.apk /luke/jdk/

#5.更新Alpine的软件源为阿里云,因为从默认官源拉取实在太慢了
RUN echo http://mirrors.aliyun.com/alpine/v3.10/main/ > /etc/apk/repositories && \
    echo http://mirrors.aliyun.com/alpine/v3.10/community/ >> /etc/apk/repositories
RUN apk update && apk upgrade

#6.运行指定的命令
## Alpine linux为了精简本身并没有安装太多的常用软件,apk类似于ubuntu的apt-get,
## 用来安装一些常用软V件,其语法如下:apk add bash wget curl git make vim docker
## wget是linux下的ftp/http传输工具,没安装会报错“/bin/sh:   wget: not found”,网上例子少安装wget
## ca-certificates证书服务,是安装glibc前置依赖
RUN apk --no-cache add ca-certificates wget \
    && wget -q -O /etc/apk/keys/sgerrand.rsa.pub https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub \
    && apk add glibc-2.31-r0.apk glibc-bin-2.31-r0.apk glibc-i18n-2.31-r0.apk \
    && rm -rf /var/cache/apk/* glibc-2.31-r0.apk glibc-bin-2.31-r0.apk glibc-i18n-2.31-r0.apk

#7.配置环境变量
## 注意~~~没有jdk啦,直接指向jre
ENV JAVA_HOME=/luke/jdk/jre1.8.0_251
ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH=$JAVA_HOME/bin:$PATH

#8.配置时区
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo 'Asia/Shanghai' >/etc/timezone
#容器启动时需要执行的命令
#CMD ["java","-version"]

 制作tomcat镜像(jdk8+tomcat8)

# 指定操作的镜像
FROM centos:7
 
# 维护者信息
MAINTAINER luke
 
# 将 jdk 和 tomcat 添加到镜像centos的/usr/local/目录下
ADD jdk-8u221-linux-x64.tar.gz /usr/local/
ADD apache-tomcat-8.5.50.tar.gz /usr/local/

#重命名文件夹名称
RUN ln -s /usr/local/apache-tomcat-8.5.50 /usr/local/tomcat
# 覆盖相关文件
COPY server.xml /usr/local/tomcat/conf/
 
# 添加环境变量
ENV JAVA_HOME /usr/local/jdk1.8.0_221
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/tomcat
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
ENV TZ="Asia/Shanghai"
ENV JAVA_OPTS="\
-server \
-Xms1g \
-Xmx1g \
-Xmn512m \
-Xss512K \
-Dfile.encoding=UTF-8 \
-verbose:gc \
-XX:+UseConcMarkSweepGC \
-XX:MaxTenuringThreshold=10 \
-XX:+ExplicitGCInvokesConcurrent \
-XX:GCTimeRatio=19 \
-XX:+UseParNewGC \
-XX:+UseCMSCompactAtFullCollection \
-XX:CMSFullGCsBeforeCompaction=10 \
-XX:+CMSClassUnloadingEnabled \
-XX:+CMSParallelRemarkEnabled \
-XX:CMSInitiatingOccupancyFraction=50 \
-Xnoclassgc \
-XX:SoftRefLRUPolicyMSPerMB=0"
 
# 暴露8080端口
EXPOSE 8080
 
# 容器启动时运行tomcat
CMD /usr/local/tomcat/bin/catalina.sh run

Dockerfile编写完成后,用以下命令build,设计的基础包已上传在资源里,下来到相应目录己可

链接:https://pan.baidu.com/s/1riOI9UVtwjtyWfI3ec8tOQ 
提取码:da0z 
复制这段内容后打开百度网盘手机App,操作更方便哦

docker build --no-cache -t luke880/jdk8:1.0.0 .

2、应用制作镜像Dockerfile

jar Dockerfile
from luke880/jdk8
#如是war包,可以指定中间件
#from tomcat 
MAINTAINER Luke
RUN mkdir /opt/jarDir
COPY easyweb-wf-form.jar /opt/jarDir/easyweb-wf-form.jar
ENV TZ=Asia/Shanghai
CMD ["nohup","java","-jar","/opt/jarDir/easyweb-wf-form.jar","&"]
#或者  --spring.profiles.active指定配置文件
#ENTRYPOINT exec java $JAVA_OPTS -jar /easyweb-system-2.3.1-cloud.jar --spring.profiles.active=test

 Dockerfile编写完成后,用以下命令build

docker build --no-cache -t luke/easyweb-wf-form:1.0.0 easyweb-wf-form/

docker run -d --name wf-form -p 6081:8081 luke/easyweb-wf-form:1.0.0

-D指定配置文件启动
docker run -e JAVA_OPTS='-server -Xms512m -Xmx512m -Dspring.profiles.active=test' -d --name form -p 6100:6100 shengding.com/form:1.0.0 


--add-host=master:192.168.6.166  /etc/hosts文件添加hosts配置
docker run -e JAVA_OPTS='-server -Xms512m -Xmx512m -Dspring.profiles.active=test' -d --add-host=master:192.168.6.166 --name form -p 6100:6100 shengding.com/form:1.0.0 

===============podman====================

删除无用镜像
删除 dangling 镜像(悬空)

podman image prune

删除 dangling 镜像包括没有被实例运行的引用

podman image prune -a

删除无用实例,删除stopped 停止状态
podman container prune

清理系统
删除悬空镜像,停止状态,构建过程中的缓存

podman system prune

删除悬空镜像,停止状态,构建过程中的缓存,包括不再被容器实例引用的数据卷

podman system prune --volumes

清理没有被运行实例引用的镜像

podman system prune -a

彻底清理
删除包含数据卷在内的所有数据

podman system prune -a --volumes
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值