docker基础命令大全
一、docker的info、version
docker info:显示docker系统信息,包括镜像和容器数
docker info
Client: Debug Mode: false Server: Containers: 0 Running: 0 Paused: 0 Stopped: 0 Images: 1 Server Version: 19.03.8 Storage Driver: overlay2 Backing Filesystem: <unknown> Supports d_type: true Native Overlay Diff: true Logging Driver: json-file Cgroup Driver: cgroupfs Plugins: Volume: local Network: bridge host ipvlan macvlan null overlay Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog Swarm: inactive Runtimes: runc Default Runtime: runc Init Binary: docker-init containerd version: 7ad184331fa3e55e52b890ea95e65ba581ae3429 runc version: dc9208a3303feef5b3839f4323d9beb36df0a9dd init version: fec3683 Security Options: seccomp Profile: default Kernel Version: 3.10.0-1062.4.1.el7.x86_64 Operating System: CentOS Linux 7 (Core) OSType: linux Architecture: x86_64 CPUs: 1 Total Memory: 1.952GiB Name: fengzhilaoling ID: PV5K:LEGW:ZT7Z:7VQ5:IAQP:CKPJ:UWCG:33DE:UCL6:UBFX:QYFL:K3RP Docker Root Dir: /var/lib/docker Debug Mode: false Registry: https://index.docker.io/v1/ Labels: Experimental: false Insecure Registries: 127.0.0.0/8 Registry Mirrors: http://hub-mirror.c.163.com/ Live Restore Enabled: false
docker version:显示docker版本信息
docker version
Client: Docker Engine - Community Version: 19.03.8 API version: 1.40 Go version: go1.12.17 Git commit: afacb8b Built: Wed Mar 11 01:27:04 2020 OS/Arch: linux/amd64 Experimental: false Server: Docker Engine - Community Engine: Version: 19.03.8 API version: 1.40 (minimum version 1.12) Go version: go1.12.17 Git commit: afacb8b Built: Wed Mar 11 01:25:42 2020 OS/Arch: linux/amd64 Experimental: false containerd: Version: 1.2.13 GitCommit: 7ad184331fa3e55e52b890ea95e65ba581ae3429 runc: Version: 1.0.0-rc10 GitCommit: dc9208a3303feef5b3839f4323d9beb36df0a9dd docker-init: Version: 0.18.0 GitCommit: fec3683
二、镜像仓库相关命令
docker search:从docker hub查找镜像
docker search centos7
NAME DESCRIPTION STARS OFFICIAL AUTOMATED ansible/centos7-ansible Ansible on Centos7 128 [OK]
#搜索收藏数大于10的nginx镜像
docker search -s 10 nginx
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
nginx Official build of Nginx. 12946 [OK]
参数说明:
NAME: 镜像仓库源的名称
DESCRIPTION: 镜像的描述
OFFICIAL: 是否 docker 官方发布
stars: 类似 Github 里面的 star,表示点赞、喜欢的意思。
AUTOMATED: 自动构建。
docker pull:从镜像仓库拉取或更新指定镜像
docker pull tomcat #默认拉取Tomcat:latest的镜像 docker pull tomcat:latest
docker login:登陆到docker镜像仓库,如果为指定仓库地址,默认为官方docker hub
docker logout:登出docker镜像仓库,如果未指定仓库地址,默认为官方仓库地址
docker login -u 用户名 -p 密码 docker logout
docker push:将本地镜像上传到镜像仓库,要先登陆到镜像仓库
docker push nginx:v1
三、本地镜像管理
docker images:列出本地镜像
-q:只显示镜像ID docker images REPOSITORY TAG IMAGE ID CREATED SIZE nginx latest ed21b7a8aee9 8 days ago 127MB docker images -q ed21b7a8aee9
docker rmi:删除本地一个或多个镜像
-f:强制删除 docker rmi -f nginx:latest Untagged: nginx:latest Untagged: nginx@sha256:282530fcb7cd19f3848c7b611043f82ae4be3781cb00105a1d593d7e6286b596 Deleted: sha256:ed21b7a8aee9cc677df6d7f38a641fa0e3c05f65592c592c9f28c42b3dd89291 Deleted: sha256:8a305f371a6c3c445a1dfc500c1364743868a269ab8cdaf95902692e82168352 Deleted: sha256:d079ef06ec1f10a8050887365f9a940b39547ba6bcc46b16a463e740984f3223 Deleted: sha256:c3a984abe8a88059915bb6c7a1d249fd1ccc16d931334ac8816540b0eb686b45
docker tag:标记本地镜像,将其归于某一仓库
docker tag nginx:latest nginx:v1 #查看一下 docker images nginx:v1 REPOSITORY TAG IMAGE ID CREATED SIZE nginx v1 ed21b7a8aee9 8 days ago 127MB
docker build:用于使用dockerfile创建镜像(后面会详细介绍)
docker build -t test/myapp .
docker history:查看指定镜像的创建历史
docker history nginx:v1 IMAGE CREATED CREATED BY SIZE COMMENT ed21b7a8aee9 8 days ago /bin/sh -c #(nop) CMD ["nginx" "-g" "daemon… 0B <missing> 8 days ago /bin/sh -c #(nop) STOPSIGNAL SIGTERM 0B <missing> 8 days ago /bin/sh -c #(nop) EXPOSE 80 0B <missing> 8 days ago /bin/sh -c ln -sf /dev/stdout /var/log/nginx… 22B <missing> 8 days ago /bin/sh -c set -x && addgroup --system -… 57.6MB <missing> 8 days ago /bin/sh -c #(nop) ENV PKG_RELEASE=1~buster 0B <missing> 8 days ago /bin/sh -c #(nop) ENV NJS_VERSION=0.3.9 0B <missing> 8 days ago /bin/sh -c #(nop) ENV NGINX_VERSION=1.17.9 0B <missing> 8 days ago /bin/sh -c #(nop) LABEL maintainer=NGINX Do… 0B <missing> 8 days ago /bin/sh -c #(nop) CMD ["bash"] 0B <missing> 8 days ago /bin/sh -c #(nop) ADD file:d1f1b387a158136fb… 69.2MB
docker save:将指定镜像保存成tar归档文件
docker save -o nginx.tar nginx:v1 #查看是否归档成功 ls nginx.tar
docker load:导入使用docker save命令导出的镜像
docker load < nginx.tar Loaded image: nginx:v1
docker import:从归档文件中创建镜像
docker import nginx.tar nginx:v2
sha256:35e69696761da1a7ba2b37db1512c519457cb7a53131209361a2c3389f40f3f0 #查看 docker images nginx:v2 REPOSITORY TAG IMAGE ID CREATED SIZE nginx v2 35e69696761d 14 seconds ago 131MB
四、容器生命周期管理
docker run:创建一个新的容器并运行一个命令
#使用nginx:v1以后台模式启动一个容器,并将本机80端口映射到容器中的80端口 本机data目录映射到容器中的data目录 docker run -p 80:80 -v data/data -d nginx:v1 806141c1ac5ba017169f104d7a3e08df26ffafb59f26322307ce6282ca3bb62f #使用nginx:latest以交互的模式启动一个容器,在容器内执行/bin/bash命令 docker run -it nginx:latest /bin/bash root@222c9bb61f0a:/#
docker start:启动容器
docker stop:停止容器
docker restart:重启容器
docker start 容器ID docker stop 容器ID docker restart 容器ID
docker kill:杀掉一个运行的容器
docker kill -s KILL 容器ID
docker rm:删除容器
#强制删除容器 docker -f 容器ID #删除容器,并删除容器挂载的数据卷 docker rm -v 容器ID #删除所有已经停止的容器: docker rm $(docker ps -a -q)
docker pause:暂停容器中所有的进程
docker unpause:恢复容器中所有的进程
docker pause 容器ID docker unpause 容器ID
docker create:创建一个新的容器但不启动
docker create --name mynginx nginx:latest 82aa5291b82490b7fd98a810a0f2fb3bab78b69879bc0355aa50ab6ee70c9e02
#查看
docker ps -a -q
82aa5291b824
docker exec:在运行的容器中执行命令
#在容器mynginx中开启一个交互的终端 docker exec -it mynginx /bin/bash
五、容器操作
docker ps:列出容器
#仅查看正在运行的容器 docker ps #查看所有的容器 docker ps -a #列出所有的容器ID docker ps -a -q
docker inspect:获取容器/镜像的元数据
docker inspect 镜像名称
docker top:查看容器运行的进程信息,支持ps参数
docker top 容器ID
#查看所有容器的进程信息
for i in $(docker ps|grep Up|awk '{print $1}'); do docker top $i; done
dockers attach:连接正在运行的容器
docker attach --sig-proxy=false mynginx
docker logs:获取容器的日志
docker logs -f 容器ID
docker port:列出指定的容器的端口映射
docker port 容器ID
六、容器rootfs命令
docker commit:从容器创建一个新的镜像
docker commit -a "作者信息" -m "提示文字" 容器ID 新的镜像名称
docker cp:用于容器与主机之间的数据拷贝
docker cp 主机文件或目录 容器ID:容器中的位置
docker diff:用于检查容器里文件结构的更改
docker diff 容器ID