docker常用命令

镜像

docker search ubuntu 查看docker hub已有的镜像
docker pull ubuntu:16.3.6 下载某个版本的镜像,不加版本号默认为latest
docker images -a 查看本地镜像
docker images -q 只显示本地镜像id
docker rmi name/id 删除未使用中的镜像
docker rmi -f name/id 强制删除镜像
docker rmi $(docker images -q) 删除所有镜像

容器

docker run -it --name="u1" ubuntu /bin/bash 启动可交互的容器,-it表示启动可交互终端
docker run -d redis 后台守护进程运行redis
docker run进入容器内,exit命令会退出并关闭容器,ctrl+p+q会退出并在后台运行容器
docker logs redis 查看redis在页面上打印的日志
docker ps 查看本地正在运行的容器
docker ps -a 查看本地容器
docker ps -n 2 只显示2个本地的容器
docker ps -q 只显示正在运行的容器id
docker ps -l 显示最近运行的容器信息
docker start name/id 启动容器
docker restart name/id
docker stop name/id
docker kill name/id 强制停止容器
docker rm name/id 删除已停止运行的容器
docker rm -f name/id 强制删除容器
docker rm -f $(docker ps -a -q) 强制删除本地所有容器
docker ps -a -q | xargs docker rm
docker exec -it redis bash重新进入在后台守护中的redis
docker attach id/name 也可以重新进入
exec进入容器后,exit命令不会导致容器关闭;attach进入容器,exit会导致容器关闭

docker commit -m="xxx" -a="作者名" 容器id 镜像名:版本号

容器卷

docker run --privileged=true -v 宿主机绝对路径:docker内路径 镜像id 启动容器并挂载容器数据卷
docker run -it --privileged=true --volumes from u1 --name=u2 ubuntu 新启动的容器继承u1的容器卷

备份

docker cp ubuntu:/tmp/a.txt /root 将容器中的文件备份到主机路径下
docker ubuntu export > abc.tar 将整个容器作为abc.tar备份到主机
cat abc.tar | docker import - lsk/ubuntu:5.2 即可将备份容器重新导入到docker镜像中

监控

docker top id/name 查看容器内资源使用情况
docker inspect id/name 查看容器内部细节,linux内核配置
docker system df 查看镜像、容器在本地的占用情况

Dockerfile

docker build -t 新镜像名字:TAG .
在原centos上新增vim、ifconfig和java8

FROM centos:7
MAINTAINER orange<orangelsk@163.com>

ENV MYPATH /usr/local
WORKDIR $MYPATH

# 安装vim编辑器
RUN yum -y install vim

# 安装ifconfig命令
RUN yum -y install net-tools

# 安装java8及lib库
RUN yum -y install glibc.i686
RUN mkdir /usr/local/java

# 把宿主机上的jdk压缩包添加到容器中,ADD命令拷贝的文件是相对路径,因此最好和Docke
# rfile文件处于同一级目录下
ADD openjdk-8u41-b04-linux-x64-14_jan_2020.tar.gz /usr/local/java/

# 配置Java环境变量
ENV JAVA_HOME /usr/local/java/java-se-8u41-ri
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
ENV PATH $JAVA_HOME/bin:$PATH

EXPOSE 80

CMD echo $MYPATH
CMD echo "success--------------------ok"
CMD /bin/bash

虚悬镜像

REPOSITORY和TAG都为的镜像,一般是在构建和删除镜像的时候出错导致

docker image ls -f dangling=true 查看虚悬镜像
docker image prune 删除全部虚悬镜像

posted @ 2022-02-07 18:14  moon_orange  阅读(66)  评论(0编辑  收藏  举报