docker 常用命令

1.镜像

1.查看镜像:docker images
2.删除镜像(如果有容器引用该镜像则无法删除):docker rmi 镜像ID
3.导出镜像:docker save -o 镜像名.tar 镜像ID
4.导入镜像:docker load -i 镜像名.tar
5.把容器保存为镜像:docker commit 容器名 镜像名

2.构建镜像

以一个web应用nplm为例,来构建一个web应用的镜像并运行。
1.将web应用导出war包nplm.war
(本次使用的镜像tomcat:8.5.15-jre8打包项目时端口号要用8080 负责外部无法访问)
2.编写Dockerfile:

FROM tomcat:8.5.15-jre8

RUN rm -rf webapps/ROOT && mkdir webapps/ROOT

ADD nplm.war /app.zip

COPY ./simsun.ttc /usr/share/fonts

RUN cd webapps/ROOT && unzip /app.zip && rm -rf /app.zip

<!--
//FROM的意思根据那个基础镜像构建镜像,我们根据tomcat:8.5.15-jre8镜像构建,里面有tomcat
//ADD nplm.war /app.zip是把nplm.war加入到镜像内并命名为app.zip
//因为该web应用需要用到一些镜像内没有的字体,所以把当前目录的字体文件simsun.ttc复制到镜像/usr/share/fonts下
//cd webapps/ROOT && unzip /app.zip  把应用解压到了镜像的webapps/ROOT目录下
-->

在这里插入图片描述

3.docker build构建镜像
现在当前目录有nplm.war、Dockerfile、simsun.ttc(字体文件)三个文件,运行docker build命令构建镜像

docker build -t nplm .
<!--
该命令会自动到当前所在目录寻找Dockerfile文件,并执行该文件构建镜像并命名为nplm
-->

3.docker run运行容器

还以上面的nplm镜像为例,要运行该镜像

docker run -p 18092:18092 --name nplm  -v /home/sdhj/container_nplm_mount:/usr/local/container_nplm_mount  -d nplm
<!--
//-p表示将容器的18092端口映射到宿主机的18092端口,这样通过宿主机的18092端口就可以访问该web应用
//-v表示文件映射,将宿主机的home/sdhj/container_nplm_mount目录和容器内/usr/local/container_nplm_mount目录相映射,这样如果容器删除了,该目录下的数据还能保留在宿主机的映射目录中
//-d应该是表示后台运行
-->

<!--运行mysql5.7示例:
docker run --name mysql5.7  -p 3306:3306 -e TZ=Asia/Shanghai -e MYSQL_ROOT_PASSWORD=123456  
-v /home/sdhj/container_mysql5_mount/data:/var/lib/mysql 
-v /home/sdhj/container_mysql5_mount/sql:/docker-entrypoint-initdb.d
-v /home/sdhj/container_mysql5_mount/config/my.cnf:/etc/mysql/my.cnf 
--restart=always  -d mysql:5.7.32
-->

4.容器操作

1.文件复制
把容器内文件拷贝到宿主机:

docker cp   容器:文件路径  起一个文件名

把宿主机文件复制到容器内:

docker cp  本地文件名    容器ID:目录
<!--   例如docker cp nplm.sql  886eb68e3d55:/sql/   -->

2.查看容器日志

docker logs -f  容器ID

根据时间范围查看并导出到log文件:

docker logs -t --since="2021-11-24T14:00:00"  --until "2021-11-24T18:00:00"  容器ID  >log

3.查看容器

docker ps
docker ps -a   <!--查看所有容器-->
docker inspect 容器名  <!--查看容器的全部信息-->

4.删除容器

docker rm 容器ID

5.进入容器
进入容器并且使用utf-8编码:

docker exec -it 容器ID env LANG=C.UTF-8  bash
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值