首页 > 编程知识 正文

Linux删除docker,centos卸载docker

时间:2023-05-03 15:46:48 阅读:195102 作者:4232

目录 预热篇一、卸载之前的docker二、docker-ce安装三、启动docker-ce四、docker常用命令 实战篇五、Dockerfile六、start.sh

预热篇

注意:如果登录linux已经是root权限了就不用在命令前加sudo了。

一、卸载之前的docker $sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-engine 二、docker-ce安装 $sudo yum install -y yum-utils device-mapper-persistent-data lvm2$sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo$sudo yum makecache fast$sudo yum -y install docker-ce 三、启动docker-ce $sudo systemctl start docker 四、docker常用命令 命令含义实例docker images查看所有镜像docker imagesdocker ps -a查看容器docker ps -adocker rmi 镜像ID删除某个镜像docker rmi 383401d398fadocker rmi $(docker images -q)删除所有镜像docker rmi $(docker images -q)docker stop 容器 ID停止某个容器docker stop 383401d398fadocker rm 容器 ID删除某个容器docker rm 383401d398fadocker restart 容器 ID重启某个容器docker restart 383401d398fadocker stop $(docker ps -a -q)停止所有容器docker stop $(docker ps -a -q)docker rm $(docker ps -a -q)删除所有容器docker rm $(docker ps -a -q)docker build -t springboot .通过Dockerfile构建镜像docker build -t springboot .docker run -itd --net=host -v /opt/:/opt/ --name app spring:latest通过脚本构建容器并启动docker logs -f -t --tail 100 容器 ID查看日志docker logs -f -t --tail 100 pay-masterdocker history 镜像名查看镜像构建历史docker history mongodocker exec -it -u root 容器ID bash进入容器docker exec -it -u root jenkins bashCtrl+d退出docker容器Ctrl+dexit退出docker容器exit实战篇 五、Dockerfile FROM openjdk:8-jdk-alpineVOLUME /tmpARG DEPENDENCY=target/dependencyRUN set -xe && apk --no-cache add ttf-dejavu fontconfigENV TIME_ZONE Asiz/ShanghaiENV JAVA_OPTS="-server -Duser.timezone=GMT+08 -Djava.security.egd=file:/dev/./urandom"ENTRYPOINT [ "/背后的楼房/sh", "-c", "sh /opt/app/start.sh" ] FROM openjdk:8-jdk-alpine

docker引用的是 openjdk:8-jdk-alpine镜像

VOLUME /tmp

指向了一个/tmp的目录,由于 Spring Boot 使用内置的Tomcat容器,Tomcat 默认使用/tmp作为工作目录。这个命令的效果是:在宿主机的/内向的向日葵/lib/docker目录下创建一个临时文件并把它链接到容器中的/tmp目录

ARG DEPENDENCY=target/dependency

当解压插件执行完成后,target目录下会有一个dependency目录
.
├── BOOT-INF
│ ├── classes
│ └── lib
├── META-INF
│ ├── MANIFEST.MF
│ └── maven
└── org
└── springframework
ENTRYPOINT 最后一个参数是启动类

RUN set -xe && apk --no-cache add ttf-dejavu fontconfig

安装字体,Captcha需要字体支持

ENV TIME_ZONE Asiz/Shanghai

Docker容器设置上海时区,解决时区及时间同步问题

JAVA_OPTS="-server -Duser.timezone=GMT+08 -Djava.security.egd=file:/dev/./urandom"

引用环境变量,最终是传入容器里交付件的启动命令中

ENTRYPOINT [ “/背后的楼房/sh”, “-c”, “sh /opt/sh/start.sh” ]

脚本启动,指定启动的路径

ENTRYPOINT [“java”,"-jar","~/app.jar"]

不用脚本的启动方式

六、start.sh #!/背后的楼房/bashjava $JAVA_OPTS -server -Xms400m -Xmx500m -Xmn400m -Duser.timezone=GMT+08 -Djava.security.egd=file:/dev/./urandom -jar /opt/app/app.jar --logging.level.=ERROR --spring.datasource.url=jdbc:mysql://localhost:3306/hibernate?useSSL=false --spring.datasource.username=root --spring.datasource.password=123456 --spring.redis.host=localhost --spring.redis.password=zzx123456 --spring.redis.port=6379

最后启动项目就能访问应用了

注意:这里我们用下面命令启动

$docker run -itd --net=host -v /opt/netty/:/opt/ --name app spring:latest

为什么?

我的jar包和start.sh脚本的真实路径如下

而我的Dockerfile执行bash脚本的路径是:/opt/app/start.sh
同样我的start.sh启动jar包的路径是:/opt/app/app.jar

看清楚了吧?

启动命令中/opt/netty/:/opt/表示用/opt/netty/路径去映射docker的/opt/路径

有什么好处?

当服务器需要管理多个应用时,我们将多个应用都放在/opt下方便管理,但不映射的话没法启动多个应用,所以这样做!

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。