#常用命令
##1、进入容器内部
####查看容器ID
docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0607d754d3f0 docker.io/jenkins/jenkins:2.194 “/sbin/tini — /us…” 22 minutes ago Up 5 minutes 0.0.0.0:50000->50000/tcp, 0.0.0.0:3080->8080/tcp x201i_jenkins
####进入容器
docker exec 后边可以跟多个参数,这里主要说明 -i -t 参数。
只用 -i 参数时,由于没有分配伪终端,界面没有我们熟悉的 Linux 命令提示符,但命令执行结果仍然可以返回。
当 -i -t 参数一起使用时,则可以看到我们熟悉的 Linux 命令提示符。
[pi@x201i ~]$ docker exec -it 0607 bashjenkins@0607d754d3f0:/$
如果从这个 stdin 中 exit,不会导致容器的停止。这就是为什么推荐大家使用 docker exec 的原因。
##2、删除镜像
删除images,通过image的id来指定删除谁
docker rmi <image id>
##3、删除容器
docker rm
##4、删除所有已经停止的容器
##5、列出容器
语法
docker ps [OPTIONS]
OPTIONS说明:
-a :显示所有的容器,包括未运行的。
-f :根据条件过滤显示的内容。
--format :指定返回值的模板文件。
-l :显示最近创建的容器。
-n :列出最近创建的n个容器。
--no-trunc :不截断输出。
-q :静默模式,只显示容器编号。
-s :显示总的文件大小。
-a :显示所有的容器,包括未运行的
##6、copy容器内文件
docker cp nginx:/usr/share/nginx/html /backup/software/docker-app/nginx/html
- nginx 容器名称
- /usr/share/nginx/html 容器内文件或者目录
- /backup/software/docker-app/nginx/html 本地文件或者目录
##7、清理无效镜像
[brmuser@aicloud173 debian-jdk8]$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
c71a34c48b70 40 minutes ago 480MB
redis 4.0.14 04c446bf216f 2 weeks ago 89.2MB
nginx 1.17.3 ab56bba91343 2 weeks ago 126MB
如上所示,REPOSITORY和TAG都是,这种镜像在Docker官方文档中被称作dangling images,指的是没有标签并且没有被容器使用的镜像。docker image prune即可删除dangling images:
[brmuser@aicloud173 debian-jdk8]$ docker image prune
WARNING! This will remove all dangling images.
Are you sure you want to continue? [y/N] y
Deleted Images:
deleted: sha256:c71a34c48b70b7deb2f3bad1620b3fcbbc49365ad29b42d16a367adb461c3ec4
deleted: sha256:526e7261c3b1263ed14597b6b71757eb97f9f62e7c042622488e086cafc17c13
deleted: sha256:bd8fe959a0db94b44d2cde444283e4b510f3ab2e6842ec9140da0afe71d7ec35
deleted: sha256:d429ca20c13b439ca03720361b29c3d874acefe7f7f0a71450378a4fdcef36c7
deleted: sha256:2e0eb4c9364f1064a57333de3337b92a28005c14b42726908909b51d7cdf3c64
deleted: sha256:0e195091f8b697399eba2e5c7ab57e5510dc0584a5f08a21d426772ac66c573b
deleted: sha256:e694564957d5e580811a0e3169f6e3f80763de6374b0883cab94653f766afb57
Total reclaimed space: 378.9MB
[brmuser@aicloud173 debian-jdk8]$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
redis 4.0.14 04c446bf216f 2 weeks ago 89.2MB
nginx 1.17.3 ab56bba91343 2 weeks ago 126MB
netdata/netdata v1.17.1 d0edd913ffb1 2 weeks ago 364
如果不能,请先使用:docker ps -a并删除容器,最后再次执行:docker image prune
[brmuser@aicloud173 debian-jdk8]$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
fc1a844eb7f6 c71a34c48b70 "/bin/sh -c 'set -ex…" 40 minutes ago Exited (1) 40 minutes ago competent_yalow
[brmuser@aicloud173 debian-jdk8]$ docker rm fc1a844eb7f6
fc1a844eb7f6
##8、构建镜像
docker build -t debian-jdk8:v1.0 .
-t debian-jdk8:v1.0表示打包的镜像名为debian-jdk,tag为v1.0注意命令的最后有一个. ,这个表示打包的上下文(其实就是Dockerfile所在目录)是在当前目录,然后目录下的Dockerfile就会被编译执行
##9、查看镜像的历史
[brmuser@aicloud173 spring-admin]$ docker history 76dd6992a0f1
IMAGE CREATED CREATED BY SIZE COMMENT
76dd6992a0f1 7 months ago /bin/sh -c #(nop) EXPOSE 9091 0B
7 months ago /bin/sh -c #(nop) ENTRYPOINT [“/bin/sh” “-c… 0B
7 months ago /bin/sh -c #(nop) COPY file:212dc1a96a7dc1b4… 28MB
7 months ago /bin/sh -c #(nop) WORKDIR /apps 0B
7 months ago /bin/sh -c #(nop) MAINTAINER satyendra.shar… 0B
2 years ago /bin/sh -c /var/lib/dpkg/info/ca-certificate… 419kB
2 years ago /bin/sh -c set -x && apt-get update && apt… 142MB
2 years ago /bin/sh -c #(nop) ENV CACERTIFICATES_JAVA… 0B
如果要显示完整的目录,请使用:
docker history 76dd6992a0f1 --no-trunc
##10、运行基础镜像容器
docker run -it ubuntu
##11、stop停止所有容器
docker stop $(docker ps -a -q) //
##11、remove删除所有容器
docker rm $(docker ps -a -q) //
