docker命令总结(二)

上次只是给大家把命令的作用以及简单使用列出来了(大家可以查看:docker命令总结(一)),那这篇文章会详细介绍每条命令的参数,命令比较多建议大家使用搜索,进行查看

docker search:此命令是用来在仓库中查找docker镜像

语法:

docker search 参数 镜像名称:tag(版本)
参数说明:

--filter,-f:根据相关条件过滤输出
--format:使用Go模板进行漂亮的打印搜索
--limit:指定最大搜索结果,默认25个
--no-trunc:显示完整的镜像描述
--stars,-s:列出收藏数不小于指定值的镜像
--automated:仅显示自动构建的镜像
示例:

默认搜索

ubuntu@VM-101-242-ubuntu:~$ sudo docker search nginx
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
nginx Official build of Nginx. 12438 [OK]
jwilder/nginx-proxy Automated Nginx reverse proxy for docker con… 1713 [OK]
richarvey/nginx-php-fpm Container running Nginx + PHP-FPM capable of… 750 [OK]
linuxserver/nginx An Nginx container, brought to you by LinuxS… 84
bitnami/nginx Bitnami nginx Docker Image 75 [OK]
tiangolo/nginx-rtmp Docker image with Nginx using the nginx-rtmp… 60 [OK]
nginxdemos/hello NGINX webserver that serves a simple page co… 35 [OK]
jc21/nginx-proxy-manager Docker container for managing Nginx proxy ho… 34
nginx/unit NGINX Unit is a dynamic web and application … 33
jlesage/nginx-proxy-manager Docker container for Nginx Proxy Manager 31 [OK]
nginx/nginx-ingress NGINX Ingress Controller for Kubernetes 22
privatebin/nginx-fpm-alpine PrivateBin running on an Nginx, php-fpm & Al… 19 [OK]
schmunk42/nginx-redirect A very simple container to redirect HTTP tra… 17 [OK]
blacklabelops/nginx Dockerized Nginx Reverse Proxy Server. 12 [OK]
centos/nginx-18-centos7 Platform for running nginx 1.8 or building n… 12
nginxinc/nginx-unprivileged Unprivileged NGINX Dockerfiles 12
centos/nginx-112-centos7 Platform for running nginx 1.12 or building … 11
nginx/nginx-prometheus-exporter NGINX Prometheus Exporter 9
sophos/nginx-vts-exporter Simple server that scrapes Nginx vts stats a… 6 [OK]
mailu/nginx Mailu nginx frontend 5 [OK]
1science/nginx Nginx Docker images that include Consul Temp… 5 [OK]
pebbletech/nginx-proxy nginx-proxy sets up a container running ngin… 2 [OK]
ansibleplaybookbundle/nginx-apb An APB to deploy NGINX 1 [OK]
centos/nginx-110-centos7 Platform for running nginx 1.10 or building … 0
wodby/nginx Generic nginx 0 [OK]
ubuntu@VM-101-242-ubuntu:~$
搜索收藏数大于10的nginx镜像,并显示详细信息

ubuntu@VM-101-242-ubuntu:~$ sudo docker search --stars=10 --no-trunc nginx
Flag --stars has been deprecated, use --filter=stars=3 instead
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
nginx Official build of Nginx. 12438 [OK]
jwilder/nginx-proxy Automated Nginx reverse proxy for docker containers 1713 [OK]
richarvey/nginx-php-fpm Container running Nginx + PHP-FPM capable of pulling application code from git 750 [OK]
linuxserver/nginx An Nginx container, brought to you by LinuxServer.io. 84
bitnami/nginx Bitnami nginx Docker Image 75 [OK]
tiangolo/nginx-rtmp Docker image with Nginx using the nginx-rtmp-module module for live multimedia (video) streaming. 60 [OK]
nginxdemos/hello NGINX webserver that serves a simple page containing its hostname, IP address and port ... 35 [OK]
jc21/nginx-proxy-manager Docker container for managing Nginx proxy hosts with a simple, powerful interface 34
nginx/unit NGINX Unit is a dynamic web and application server designed to run applications in various languages 33
jlesage/nginx-proxy-manager Docker container for Nginx Proxy Manager 31 [OK]
nginx/nginx-ingress NGINX Ingress Controller for Kubernetes 22
privatebin/nginx-fpm-alpine PrivateBin running on an Nginx, php-fpm & Alpine Linux stack 19 [OK]
schmunk42/nginx-redirect A very simple container to redirect HTTP traffic to another server, based on nginx 17 [OK]
centos/nginx-18-centos7 Platform for running nginx 1.8 or building nginx-based application 12
nginxinc/nginx-unprivileged Unprivileged NGINX Dockerfiles 12
blacklabelops/nginx Dockerized Nginx Reverse Proxy Server. 12 [OK]
centos/nginx-112-centos7 Platform for running nginx 1.12 or building nginx-based application 11
ubuntu@VM-101-242-ubuntu:~$

使用条件查找收藏数大于10的nginx镜像

ubuntu@VM-101-242-ubuntu:~$ sudo docker search --filter stars=3 nginx
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
nginx Official build of Nginx. 12438 [OK]
jwilder/nginx-proxy Automated Nginx reverse proxy for docker con… 1713 [OK]
richarvey/nginx-php-fpm Container running Nginx + PHP-FPM capable of… 750 [OK]
linuxserver/nginx An Nginx container, brought to you by LinuxS… 84
bitnami/nginx Bitnami nginx Docker Image 75 [OK]
tiangolo/nginx-rtmp Docker image with Nginx using the nginx-rtmp… 60 [OK]
nginxdemos/hello NGINX webserver that serves a simple page co… 35 [OK]
jc21/nginx-proxy-manager Docker container for managing Nginx proxy ho… 34
nginx/unit NGINX Unit is a dynamic web and application … 33
jlesage/nginx-proxy-manager Docker container for Nginx Proxy Manager 31 [OK]
nginx/nginx-ingress NGINX Ingress Controller for Kubernetes 22
privatebin/nginx-fpm-alpine PrivateBin running on an Nginx, php-fpm & Al… 19 [OK]
schmunk42/nginx-redirect A very simple container to redirect HTTP tra… 17 [OK]
centos/nginx-18-centos7 Platform for running nginx 1.8 or building n… 12
blacklabelops/nginx Dockerized Nginx Reverse Proxy Server. 12 [OK]
nginxinc/nginx-unprivileged Unprivileged NGINX Dockerfiles 12
centos/nginx-112-centos7 Platform for running nginx 1.12 or building … 11
nginx/nginx-prometheus-exporter NGINX Prometheus Exporter 9
sophos/nginx-vts-exporter Simple server that scrapes Nginx vts stats a… 6 [OK]
mailu/nginx Mailu nginx frontend 5 [OK]
1science/nginx Nginx Docker images that include Consul Temp… 5 [OK]
ubuntu@VM-101-242-ubuntu:~$

pull

从docker仓库下载镜像到本地

语法

docker pull 镜像名称:tag(版本)
参数说明

-a, --all-tags:下载所有版本的镜像
-q, --quiet:不显示详细信息
--disable-content-trust:不对下载的镜像进行校验
--platform:指定下载镜像服务器的平台信息
示例

下载nginx默认版本的docker镜像

ubuntu@VM-35-226-ubuntu:~$ sudo docker pull nginx:latest
latest: Pulling from library/nginx
8ec398bc0356: Pull complete
465560073b6f: Pull complete
f473f9fd0a8c: Pull complete
Digest: sha256:b2d89d0a210398b4d1120b3e3a7672c16a4ba09c2c4a0395f18b9f7999b768f2
Status: Downloaded newer image for nginx:latest
docker.io/library/nginx:latest
ubuntu@VM-35-226-ubuntu:~$ sudo docker images //查看所有本地镜像
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest f7bb5701a33c 9 days ago 126MB
ubuntu@VM-35-226-ubuntu:~$

push

推送指定镜像到docker镜像服务器

语法

docker push 本地镜像:tag(版本)
参数说明

--disable-content-trust:不对镜像进行校验

示例

docker push blxt:5000/blxt/nginx 上传nginx到私有仓库

images

查看本地所有docker镜像

语法

docker images 参数 镜像:tag(版本)
参数说明

-a, --all:列出本地所有镜像
--digests:显示镜像简单信息说明
-f, --filter:根据相关条件过滤输出
--format:使用Go模板进行漂亮的打印搜索
--no-trunc:显示镜像的完整信息
-q, --quiet:只显示镜像ID
示例

查看本地所有镜像

ubuntu@VM-35-226-ubuntu:~$ sudo docker images -a
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest f7bb5701a33c 9 days ago 126MB
ubuntu@VM-35-226-ubuntu:~$
查看镜像详细信息

ubuntu@VM-35-226-ubuntu:~$ sudo docker images --no-trunc nginx:latest
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest sha256:f7bb5701a33c0e572ed06ca554edca1bee96cbbc1f76f3b01c985de7e19d0657 9 days ago 126MB
ubuntu@VM-35-226-ubuntu:~$

查看镜像ID

ubuntu@VM-35-226-ubuntu:~$ sudo docker images -q nginx:latest
f7bb5701a33c
ubuntu@VM-35-226-ubuntu:~$

run

创建容器,并运行

语法

docker run 参数 镜像:tag(版本)
参数说明

-a, --attach: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项
-d: 容器将在后台运行
-t: 给容器分配tty终端
--sig-proxy=true: 将所有接收到的信号代理到进程(仅限非TTY模式)
-i: 以交互模式运行容器
--name: 给容器设置名称
--dns: 为容器设置自定义dns服务器
--dns-search: 指定DNS搜索域名
--network: 为容器指定网卡
--network-alias: 为容器的网卡设置别名
--add-host: 在容器的hosts文件中添加记录
--mac-address: 设置容器的MAC地址
--ip: 设置容器的IPV4地址
--ip6: 设置容器IPV6地址
--link-local-ip: 设置一个或多个容器的以太网设备的链接本地IPv4/IPv6地址
--rm: 容器退出时自动删除容器
-m, --memory: 设置容器内存大小,最小4M
--memory-swap: 设置容器的总内存大小,包含交换分区
-c, --cpu-shares: 设置cpu
--cpus: 设置cpu数量
--entrypoint: 在容器运行时执行的默认命令
--expose: 设置端口映射
-P: 将容器中所有端口映射到宿主机
-p: 将容器的某个端口映射到宿主机
--link: 将链接添加到另外一个容器
-v, --volume: 将宿主机的文件挂载到容器中
--volumes-from: 将宿主机的所有文件系统挂载到容器
-u,--user: 设置所使用的用户名或UID以及指定命令的可选组名或GID
-h: 指定容器主机名称
-e: 设置环境变量
--env-file: 从指定文件中导入变量
参数还有很多,这里就不一一列举了,上面是常用的参数
示例

后台运行nginx容器,并取名为nginx

ubuntu@VM-35-226-ubuntu:~$ sudo docker run -d --name nginx nginx:latest
06a913a442f9729e284b1a0628e5ce46561f81c6e8777f91d184f10de079cb55
ubuntu@VM-35-226-ubuntu:~$ sudo docker ps -a //查看所有容器
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
06a913a442f9 nginx:latest "nginx -g 'daemon of…" 18 seconds ago Up 15 seconds 80/tcp nginx
ubuntu@VM-35-226-ubuntu:~$

后台运行nginx容器,并映射容器80端口到宿主机的80端口

ubuntu@VM-35-226-ubuntu:~$ sudo docker run -d --name nginx -p 80:80 nginx:latest
c026ee7e0c9477c15ac42965ed19af92b6017e7bcce079fd450f8cee5f2d9de6
ubuntu@VM-35-226-ubuntu:~$ sudo docker ps -a //查看所有容器
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c026ee7e0c94 nginx:latest "nginx -g 'daemon of…" 8 seconds ago Up 6 seconds 0.0.0.0:80->80/tcp nginx
ubuntu@VM-35-226-ubuntu:~$ sudo curl 127.0.0.1 //访问容器nginx页面



Welcome to nginx!



Welcome to nginx!


If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.

For online documentation and support please refer to
nginx.org.

Commercial support is available at
nginx.com.

Thank you for using nginx.




ubuntu@VM-35-226-ubuntu:~$
创建nginx容器,并进行交互式启动

ubuntu@VM-35-226-ubuntu:~$ sudo docker run -it --name nginx nginx:latest /bin/bash
root@4a518f4a2a01:/#

history

查看镜像形成过程

语法

docker history 参数 镜像:tag(版本)

参数

--format:使用Go模板进行漂亮的打印搜索
-H, --human:以可读格式打印大小和日期(默认为true)
--no-trunc:显示形成详细信息
-q, --quiet:只显示镜像ID

示例

默认使用方法

ubuntu@VM-35-226-ubuntu:~$ sudo docker history nginx:latest
IMAGE CREATED CREATED BY SIZE COMMENT
f7bb5701a33c 9 days ago /bin/sh -c #(nop) CMD ["nginx" "-g" "daemon… 0B
9 days ago /bin/sh -c #(nop) STOPSIGNAL SIGTERM 0B
9 days ago /bin/sh -c #(nop) EXPOSE 80 0B
9 days ago /bin/sh -c ln -sf /dev/stdout /var/log/nginx… 22B
9 days ago /bin/sh -c set -x && addgroup --system -… 57.1MB
9 days ago /bin/sh -c #(nop) ENV PKG_RELEASE=1~buster 0B
9 days ago /bin/sh -c #(nop) ENV NJS_VERSION=0.3.7 0B
9 days ago /bin/sh -c #(nop) ENV NGINX_VERSION=1.17.6 0B
9 days ago /bin/sh -c #(nop) LABEL maintainer=NGINX Do… 0B
10 days ago /bin/sh -c #(nop) CMD ["bash"] 0B
10 days ago /bin/sh -c #(nop) ADD file:04caaf303199c81ff… 69.2MB
ubuntu@VM-35-226-ubuntu:~$
只打印镜像ID

ubuntu@VM-35-226-ubuntu:~$ sudo docker history -q nginx:latest
f7bb5701a33c










ubuntu@VM-35-226-ubuntu:~$
显示镜像形成的详细信息

ubuntu@VM-35-226-ubuntu:~$ sudo docker history --no-trunc nginx
IMAGE CREATED CREATED BY SIZE COMMENT
sha256:f7bb5701a33c0e572ed06ca554edca1bee96cbbc1f76f3b01c985de7e19d0657 9 days ago /bin/sh -c #(nop) CMD ["nginx" "-g" "daemon off;"] 0B
9 days ago /bin/sh -c #(nop) STOPSIGNAL SIGTERM 0B
9 days ago /bin/sh -c #(nop) EXPOSE 80 0B
9 days ago /bin/sh -c ln -sf /dev/stdout /var/log/nginx/access.log && ln -sf /dev/stderr /var/log/nginx/error.log 22B
9 days ago /bin/sh -c set -x && addgroup --system --gid 101 nginx && adduser --system --disabled-login --ingroup nginx --no-create-home --home /nonexistent --gecos "nginx user" --shell /bin/false --uid 101 nginx && apt-get update && apt-get install --no-install-recommends --no-install-suggests -y gnupg1 ca-certificates && NGINX_GPGKEY=573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62; found=''; for server in ha.pool.sks-keyservers.net hkp://keyserver.ubuntu.com:80 hkp://p80.pool.sks-keyservers.net:80 pgp.mit.edu ; do echo "Fetching GPG key $NGINX_GPGKEY from \(server"; apt-key adv --keyserver "\)server" --keyserver-options timeout=10 --recv-keys "\(NGINX_GPGKEY" && found=yes && break; done; test -z "\)found" && echo >&2 "error: failed to fetch GPG key \(NGINX_GPGKEY" && exit 1; apt-get remove --purge --auto-remove -y gnupg1 && rm -rf /var/lib/apt/lists/* && dpkgArch="\)(dpkg --print-architecture)" && nginxPackages=" nginx=\({NGINX_VERSION}-\){PKG_RELEASE} nginx-module-xslt=\({NGINX_VERSION}-\){PKG_RELEASE} nginx-module-geoip=\({NGINX_VERSION}-\){PKG_RELEASE} nginx-module-image-filter=\({NGINX_VERSION}-\){PKG_RELEASE} nginx-module-njs=\({NGINX_VERSION}.\){NJS_VERSION}-\({PKG_RELEASE} " && case "\)dpkgArch" in amd64|i386) echo "deb https://nginx.org/packages/mainline/debian/ buster nginx" >> /etc/apt/sources.list.d/nginx.list && apt-get update ;; *) echo "deb-src https://nginx.org/packages/mainline/debian/ buster nginx" >> /etc/apt/sources.list.d/nginx.list && tempDir="\((mktemp -d)" && chmod 777 "\)tempDir" && savedAptMark="$(apt-mark showmanual)" && apt-get update && apt-get build-dep -y \(nginxPackages && ( cd "\)tempDir" && DEB_BUILD_OPTIONS="nocheck parallel=$(nproc)" apt-get source --compile \(nginxPackages ) && apt-mark showmanual | xargs apt-mark auto > /dev/null && { [ -z "\)savedAptMark" ] || apt-mark manual \(savedAptMark; } && ls -lAFh "\)tempDir" && ( cd "\(tempDir" && dpkg-scanpackages . > Packages ) && grep '^Package: ' "\)tempDir/Packages" && echo "deb [ trusted=yes ] file://$tempDir ./" > /etc/apt/sources.list.d/temp.list && apt-get -o Acquire::GzipIndexes=false update ;; esac && apt-get install --no-install-recommends --no-install-suggests -y \(nginxPackages gettext-base && apt-get remove --purge --auto-remove -y ca-certificates && rm -rf /var/lib/apt/lists/* /etc/apt/sources.list.d/nginx.list && if [ -n "\)tempDir" ]; then apt-get purge -y --auto-remove && rm -rf "\(tempDir" /etc/apt/sources.list.d/temp.list; fi 57.1MB <missing> 9 days ago /bin/sh -c #(nop) ENV PKG_RELEASE=1~buster 0B <missing> 9 days ago /bin/sh -c #(nop) ENV NJS_VERSION=0.3.7 0B <missing> 9 days ago /bin/sh -c #(nop) ENV NGINX_VERSION=1.17.6 ubuntu@VM-35-226-ubuntu:~\) sudo docker history --no-trunc nginx:latest
IMAGE CREATED CREATED BY SIZE COMMENT
sha256:f7bb5701a33c0e572ed06ca554edca1bee96cbbc1f76f3b01c985de7e19d0657 9 days ago /bin/sh -c #(nop) CMD ["nginx" "-g" "daemon off;"] 0B
9 days ago /bin/sh -c #(nop) STOPSIGNAL SIGTERM 0B
9 days ago /bin/sh -c #(nop) EXPOSE 80 0B
9 days ago /bin/sh -c ln -sf /dev/stdout /var/log/nginx/access.log && ln -sf /dev/stderr /var/log/nginx/error.log 22B
9 days ago /bin/sh -c set -x && addgroup --system --gid 101 nginx && adduser --system --disabled-login --ingroup nginx --no-create-home --home /nonexistent --gecos "nginx user" --shell /bin/false --uid 101 nginx && apt-get update && apt-get install --no-install-recommends --no-install-suggests -y gnupg1 ca-certificates && NGINX_GPGKEY=573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62; found=''; for server in ha.pool.sks-keyservers.net hkp://keyserver.ubuntu.com:80 hkp://p80.pool.sks-keyservers.net:80 pgp.mit.edu ; do echo "Fetching GPG key $NGINX_GPGKEY from \(server"; apt-key adv --keyserver "\)server" --keyserver-options timeout=10 --recv-keys "\(NGINX_GPGKEY" && found=yes && break; done; test -z "\)found" && echo >&2 "error: failed to fetch GPG key \(NGINX_GPGKEY" && exit 1; apt-get remove --purge --auto-remove -y gnupg1 && rm -rf /var/lib/apt/lists/* && dpkgArch="\)(dpkg --print-architecture)" && nginxPackages=" nginx=\({NGINX_VERSION}-\){PKG_RELEASE} nginx-module-xslt=\({NGINX_VERSION}-\){PKG_RELEASE} nginx-module-geoip=\({NGINX_VERSION}-\){PKG_RELEASE} nginx-module-image-filter=\({NGINX_VERSION}-\){PKG_RELEASE} nginx-module-njs=\({NGINX_VERSION}.\){NJS_VERSION}-\({PKG_RELEASE} " && case "\)dpkgArch" in amd64|i386) echo "deb https://nginx.org/packages/mainline/debian/ buster nginx" >> /etc/apt/sources.list.d/nginx.list && apt-get update ;; *) echo "deb-src https://nginx.org/packages/mainline/debian/ buster nginx" >> /etc/apt/sources.list.d/nginx.list && tempDir="\((mktemp -d)" && chmod 777 "\)tempDir" && savedAptMark="$(apt-mark showmanual)" && apt-get update && apt-get build-dep -y \(nginxPackages && ( cd "\)tempDir" && DEB_BUILD_OPTIONS="nocheck parallel=$(nproc)" apt-get source --compile \(nginxPackages ) && apt-mark showmanual | xargs apt-mark auto > /dev/null && { [ -z "\)savedAptMark" ] || apt-mark manual \(savedAptMark; } && ls -lAFh "\)tempDir" && ( cd "\(tempDir" && dpkg-scanpackages . > Packages ) && grep '^Package: ' "\)tempDir/Packages" && echo "deb [ trusted=yes ] file://$tempDir ./" > /etc/apt/sources.list.d/temp.list && apt-get -o Acquire::GzipIndexes=false update ;; esac && apt-get install --no-install-recommends --no-install-suggests -y \(nginxPackages gettext-base && apt-get remove --purge --auto-remove -y ca-certificates && rm -rf /var/lib/apt/lists/* /etc/apt/sources.list.d/nginx.list && if [ -n "\)tempDir" ]; then apt-get purge -y --auto-remove && rm -rf "\(tempDir" /etc/apt/sources.list.d/temp.list; fi 57.1MB <missing> 9 days ago /bin/sh -c #(nop) ENV PKG_RELEASE=1~buster 0B <missing> 9 days ago /bin/sh -c #(nop) ENV NJS_VERSION=0.3.7 0B <missing> 9 days ago /bin/sh -c #(nop) ENV NGINX_VERSION=1.17.6 0B <missing> 9 days ago /bin/sh -c #(nop) LABEL maintainer=NGINX Docker Maintainers <docker-maint@nginx.com> 0B <missing> 10 days ago /bin/sh -c #(nop) CMD ["bash"] 0B <missing> 10 days ago /bin/sh -c #(nop) ADD file:04caaf303199c81ff1a94e2e39d5096f9d02b73294b82758e5bc6e23aff94272 in / 69.2MB ubuntu@VM-35-226-ubuntu:~\)

start

启动容器

语法

docker start 参数 容器ID/容器名称
参数说明

-a, --attach:附加STDOUT/STDERR和转发信号
--checkpoint:从快照进行还原
--checkpoint-dir:使用自定义检查点存储目录
--detach-keys:重写用于分离容器的键序列
-i, --interactive:附加容器的STDIN
示例

启动使用create创建的nginx容器

ubuntu@VM-35-226-ubuntu:~$ sudo docker ps -a //查看所有容器
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8b9053318855 nginx:latest "nginx -g 'daemon of…" 9 seconds ago Created admiring_rhodes
ubuntu@VM-35-226-ubuntu:~$ sudo docker start 8b9053318855
8b9053318855
ubuntu@VM-35-226-ubuntu:~$ sudo docker ps //查看已启动的容器
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8b9053318855 nginx:latest "nginx -g 'daemon of…" 40 seconds ago Up 7 seconds 80/tcp admiring_rhodes
ubuntu@VM-35-226-ubuntu:~$

stop

关闭容器

语法

docker stop 参数 容器ID/容器名称
参数说明

--time , -t:在多少时间后关闭容器
示例

默认使用方法

ubuntu@VM-121-163-ubuntu:~$ sudo docker run -d --name nginx nginx:latest //创建并后台启动nginx容器
4c1e4ab3cfdcb7c5c55052238525e79bb82c0b5cf70b18420520ec2884669272
ubuntu@VM-121-163-ubuntu:~$ sudo docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4c1e4ab3cfdc nginx:latest "nginx -g 'daemon of…" 7 seconds ago Up 5 seconds 80/tcp nginx
ubuntu@VM-121-163-ubuntu:~$ sudo docker stop nginx
nginx
ubuntu@VM-121-163-ubuntu:~$ sudo docker ps -a //查看所有容器
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4c1e4ab3cfdc nginx:latest "nginx -g 'daemon of…" 26 seconds ago Exited (0) 5 seconds ago nginx
ubuntu@VM-121-163-ubuntu:~$

build

通过dockerfile制作镜像

语法

docker build 参数 路径
参数说明

--build-arg:设置创建时的变量
--cgroup-parent:容器的可选父cgroup
--compress:使用gzip压缩构建上下文
--cpu-shares :设置 cpu 使用权重
--cpu-period :限制 CPU CFS周期
--cpu-quota :限制 CPU CFS配额
--cpuset-cpus :指定使用的CPU id
--cpuset-mems :指定使用的内存 id
--disable-content-trus:跳过镜像验证
--file , -f:指定dockerfile的名称,默认为dockerfile
--force-rm:始终移除中间容器
--iidfile:将镜像ID写入文件
--isolation:使用容器隔离
--label:为镜像设置元数据
--memory , -m:设置内存限制
--memory-swap:设置总内存,包含交换内存
--network:设置镜像网络信息
--no-cache:构建镜像不使用缓存
--output , -o:设置镜像生成位置
--pull:始终尝试提取图像的较新版本
--quiet , -q: 禁止生成输出并成功打印图像ID
--rm:成功构建后删除中间容器
--tag, -t: 镜像的名字及标签
--ulimit :Ulimit配置
--shm-size :设置/dev/shm的大小,默认值是64M

示例

使用当前目录下的dockerfile制作nginx:V1镜像

docker build -t nginx:V1 .

创建nginx:V2镜像,使用非当前目录下的dockerfile

docker build -t nginx:V2 -f /opt/dockerfile
添加其他主机到容器文件中

docker build --add-host=docker:1.1.1.1 .

使用参数--squash创建名为test:1的镜像

docker build --squash -t test:1 .

attach

当前shell连接运行容器

语法

docker attach 参数 容器ID/容器名称
参数

--detach-keys: 覆盖分离容器的键序列
--no-stdin:不要附上STDIN
--sig-proxy:代理所有接收到的信号到进程
示例

默认使用方法

ubuntu@VM-121-163-ubuntu:~$ sudo docker run -d --name ubuntu ubuntu /usr/bin/top -b //创建并启动容器
98c3f0964ad3a38e360867941a5510cd77e164a835be5b9b69aa47d3d5ceed17
ubuntu@VM-121-163-ubuntu:~$ sudo docker attach ubuntu
top - 08:24:58 up 1:12, 0 users, load average: 0.04, 0.06, 0.01
Tasks: 1 total, 1 running, 0 sleeping, 0 stopped, 0 zombie
%Cpu(s): 2.3 us, 1.7 sy, 0.0 ni, 96.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 885080 total, 149760 free, 231524 used, 503796 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 499100 avail Mem

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 36480 3100 2748 R 0.0 0.4 0:00.19 top

top - 08:25:01 up 1:12, 0 users, load average: 0.04, 0.06, 0.01
Tasks: 1 total, 1 running, 0 sleeping, 0 stopped, 0 zombie
%Cpu(s): 1.0 us, 0.7 sy, 0.0 ni, 98.0 id, 0.3 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 885080 total, 151252 free, 230048 used, 503780 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 500588 avail Mem

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 36480 3100 2748 R 0.0 0.4 0:00.19 top

top - 08:25:04 up 1:13, 0 users, load average: 0.04, 0.06, 0.01
Tasks: 1 total, 1 running, 0 sleeping, 0 stopped, 0 zombie
%Cpu(s): 1.3 us, 1.0 sy, 0.0 ni, 97.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 885080 total, 151264 free, 230016 used, 503800 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 500616 avail Mem

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 36480 3100 2748 R 0.0 0.4 0:00.19 top

您可以看到该bash 过程返回的退出代码也由docker attach命令返回给其调用者

ubuntu@VM-121-163-ubuntu:~$ sudo docker run --name ubuntu -d -it ubuntu //创建并启动容器
9ac7802feb2b77bb905bc9f4c5ca9782e6800fc995b1f2b39da78239d86a7405
ubuntu@VM-121-163-ubuntu:~$ sudo docker attach ubuntu
root@9ac7802feb2b:/#
root@9ac7802feb2b:/#

commit

保存当前容器为镜像/快照

语法

docker commit 容器名称/容器ID 镜像名:tag(版本)
示例

ubuntu@VM-121-163-ubuntu:~$ sudo docker images //查看镜像
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest f7bb5701a33c 9 days ago 126MB
ubuntu latest 549b9b86cb8d 2 weeks ago 64.2MB
ubuntu@VM-121-163-ubuntu:~$ sudo docker run -itd --name nginx nginx:latest //创建容器
9566c54f3883b0a3b2f92dc94eb8520772d5d05826d7025be23212768f4d7967
ubuntu@VM-121-163-ubuntu:~$ sudo docker ps -a //查看容器状态
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9566c54f3883 nginx:latest "nginx -g 'daemon of…" 11 seconds ago Up 9 seconds 80/tcp nginx
ubuntu@VM-121-163-ubuntu:~$ sudo docker commit nginx nginx:V1 //生成快照
sha256:e091997549ff02cf6309d6146b7626c6efef6dd9ce598c632f6bf0f4d090978c
ubuntu@VM-121-163-ubuntu:~$ sudo docker images //查看镜像
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx V1 e091997549ff 22 seconds ago 126MB
nginx latest f7bb5701a33c 9 days ago 126MB
ubuntu latest 549b9b86cb8d 2 weeks ago 64.2MB
ubuntu@VM-121-163-ubuntu:~$

cp

容器与宿主机互相复制文件

语法

docker cp 容器ID/容器名:文件路径 宿主机路径 复制容器中文件到宿主机
docker cp 宿主机路径 容器ID/容器名:文件存储路径 复制宿主机文件到容器

参数说明

-a, --archive:复制文件同时复制文件用户信息
-L, --follow-link:保持源目标中的链接
示例

复制宿主机文件到容器的根目录中

root@test:/jia/test# docker run -d --name nginx nginx:latest //创建并运行nginx容器
33b6339003ef41fd62b909fd79e9056d53d944b3172f0f02fc717fd64a2648e3
root@test:/jia/test# docker exec nginx ls / //列出容器根目录
bin
boot
dev
etc
home
lib
lib64
media
mnt
opt
proc
root
run
sbin
srv
sys
tmp
usr
var
root@test:/jia/test# docker cp test nginx:/ //复制文件到容器
root@test:/jia/test# docker exec nginx ls / //列出容器根目录
bin
boot
dev
etc
home
lib
lib64
media
mnt
opt
proc
root
run
sbin
srv
sys
test
tmp
usr
var
从容器中复制文件到宿主目录

root@test:/jia/test# ls //列出目录
root@test:/jia/test# docker cp nginx:/test . //复制容器中文件到当前目录
root@test:/jia/test# ls //列出目录
test
root@test:/jia/test#

create

创建容器但不启动容器

语法

docker create 参数 镜像:tag(版本)

参数说明

--add-host: 在容器的hosts文件中添加记录
-a, --attach: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项
--cap-add: 添加linux功能
--cap-drop: 删除linux功能
--cidfile: 将容器ID写入文件
-c, --cpu-shares: 设置cpu
--device: 将主机设备添加到容器
--disable-content-trus: 不对镜像进行验证
--dns: 为容器设置自定义dns服务器‘
--dns-opt: 设置DNS选项
--dns-search: 指定DNS搜索域名
--domainname: 设置容器域名
--env , -e: 设置环境变量
--env-file: 读取变量文件进行设置容器变量
--expose: 设置端口映射
--hostname , -h: 设置容器主机名
--init: 在容器内运行一个初始化程序,以转发信号并获取进程
--ip: 设置容器的IPV4地址
--ip6: 设置容器IPV6地址
--isolation: 使用隔离技术
--link: 将链接添加到宿主机,也就是创建软连接
--link-local-ip: 设置容器本地地址
--mac-address: 设置容器MAC地址
--memory , -m: 设置内存
--memory-swap: 设置总内存大小,包含交换内存
--mount: 挂载文件系统
--name: 设置容器名称
--net: 将容器链接网络
--net-alias: 为容器网络起别名
--network: 容器链接到网络
--network-alias: 为容器网络起别名
--publish , -p: 将容器端口映射到宿主机
--publish-all , -P: 将容器所有端口映射到宿主机
--read-only: 将容器的根文件系统挂载为只读
--restart: 容器退出时重新启动策略以应用
--rm: 退出时自动删除容器
--stop-signal: 停止容器的信号
--tty , -t: 分配终端
--user , -u: 设置运行容器的用户
--workdir , -w: 设置容器的工作目录
参数还有很多,这里就不一一列举了,上面是常用的参数
示例

创建nginx容器并启动

root@test:/jia/test# docker create -t -i nginx:latest /bin/bash //创建容器
6f2cea61b80c117fe877589073b5f259a57623bd511a89330c72c825c0cbe4fd
root@test:/jia/test# docker ps -a //查看容器
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6f2cea61b80c nginx:latest "/bin/bash" 12 seconds ago Created funny_gould
root@test:/jia/test# docker start -a -i 6f2cea61b80c //启动容器
root@6f2cea61b80c:/# ls //列出容器当前目录
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
root@6f2cea61b80c:/#

创建名为nginx的容器并进行启动

root@test:/jia/test# docker create --name nginx -t -i nginx:latest /bin/bash //创建容器
5487d362e25bfcd39c70754972eb964121ba8408f3f97c89cac930208882e745
root@test:/jia/test# docker ps -a //查看容器
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5487d362e25b nginx:latest "/bin/bash" 5 seconds ago Created nginx
root@test:/jia/test# docker start -a -i nginx //启动容器并进行链接
root@5487d362e25b:/# ls
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
root@5487d362e25b:/#
创建nginx容器并映射端口

root@test:/jia/test# docker create --name nginx -p 80:80-it nginx:latest /bin/bash //创建容器
4cc06988f4284f01281a338b914aff247a16969e33177088673a281d848f99d4
root@test:/jia/test# docker ps -a //查看容器
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ad7eb9da0f48 nginx:latest "/bin/bash" 2 minutes ago Exited (0) 2 seconds ago nginx
root@test:/jia/test# docker start nginx //启动容器
nginx
root@test:/jia/test# docker ps -a //查看容器状态
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ad7eb9da0f48 nginx:latest "/bin/bash" 2 minutes ago Up 5 seconds 0.0.0.0:8080->80/tcp nginx
root@test:/jia/test# curl 127.0.0.1



Welcome to nginx!



Welcome to nginx!


If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.

For online documentation and support please refer to
nginx.org.

Commercial support is available at
nginx.com.

Thank you for using nginx.




root@test:/jia/test#

diff

查看容器改动

语法

docker diff 容器
符号说明

A 添加了文件或目录
D 文件或目录已删除
C 文件或目录已更改
示例

默认使用方法

root@test:/jia/test# docker diff nginx
C /root
A /root/.bash_history
root@test:/jia/test#
复制test文件到nginx容器中查看你改动情况

root@test:/jia/test# docker cp test nginx:/ //复制test文件到容器的根目录
root@test:/jia/test# docker diff nginx
A /test
C /root
A /root/.bash_history
root@test:/jia/test#

exec

在容器中执行命令

语法

docker exec 参数 容器ID/容器名称 命令
参数说明

--detach , -d:后台运行容器
--detach-keys:覆盖分离容器的键序列
--env , -e:设置环境变量
--interactive , -i: 即使未连接STDIN也保持打开状态
--privileged:赋予命令扩展权限
--tty , -t: 分配伪TTY
--user , -u:指定运行用户
--workdir , -w:设置工作目录
示例

使用容器打印“hello word”

root@test:/jia/test# docker run --name centos -itd centos:latest //创建并启动容器
1b75dac7104122e021fb8cc7989c8992eb8502f34713e76ee87e6d6f7796e83c
root@test:/jia/test# docker ps -a //查看容器
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1b75dac71041 centos:latest "/bin/bash" 4 seconds ago Up 3 seconds centos
root@test:/jia/test# docker exec centos echo "hello word" //使用 echo 打印“hello word”
hello word
root@test:/jia/test#
给容器建立交互式shell,并查看容器IP地址

root@test:/jia/test# docker ps -a //查看容器
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1b75dac71041 centos:latest "/bin/bash" 2 minutes ago Up 2 minutes centos
root@test:/jia/test# docker exec -it centos /bin/bash //建立bash交互式shell
[root@1b75dac71041 /]# ip addr //查看IP地址
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
20: eth0@if21: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet 172.17.0.2/16 brd 172.17.255.255 scope global eth0
valid_lft forever preferred_lft forever
[root@1b75dac71041 /]#
指定工作目录,并打印路径

root@test:/jia/test# docker ps -a //查看容器
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1b75dac71041 centos:latest "/bin/bash" 9 minutes ago Up 9 minutes centos
root@test:/jia/test# docker exec -w /var/www/html centos pwd //设置工作目录,并进行打印目录
/var/www/html
root@test:/jia/test#

login

登入docker镜像源服务器

语法

docker login 参数 服务器地址
参数说明

-p, --password:指定登录服务器用户的密码
-u, --username:指定登录服务器用户的账户
示例

默认登录dockerhub

root@test:/jia/test# docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: blxt
Password:
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded
root@test:/jia/test#
指定用户名和密码进行登录

root@test:/jia/test# docker login -u blxt -p 123456
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded
root@test:/jia/test#
登录阿里镜像仓库

root@jia:/etc# docker login -u '弑天倾城' -p '123456' registry.cn-shenzhen.aliyuncs.com
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded
root@jia:/etc#

logout

退出登录镜像源服务器

语法

docker logout 镜像仓库地址
示例

退出dockerhub用户登录

root@jia:/etc# docker login -u blxt -p 'JKY@jjj.123' //登录dockerhub服务器
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded
root@jia:/etc# docker logout //退出登录
Removing login credentials for https://index.docker.io/v1/
root@jia:/etc#

退出阿里镜像仓库

root@jia:/etc# docker login -u '弑天倾城' -p '123456' registry.cn-shenzhen.aliyuncs.com //登录阿里镜像仓库
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded
root@jia:/etc# docker logout //退出失败没有登录dockerhub仓库
Not logged in to https://index.docker.io/v1/
root@jia:/etc# docker logout registry.cn-shenzhen.aliyuncs.com
Removing login credentials for registry.cn-shenzhen.aliyuncs.com //退出登录阿里镜像仓库
root@jia:/etc#

logs

输出当前容器的日志信息

语法

docker logs 参数 容器ID/容器名
参数说明

--details:查看日志详细信息
--follow , -f:实时动态的查看日志
--since:显示生成日志的时间
--tail:显示日志行数
--timestamps , -t:显示时间戳
--until:显示某一时间段的日志信息
示例

默认查看容器日志

root@jia:/etc# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
85c8be92df44 nginx:latest "nginx -g 'daemon of…" 7 minutes ago Up 7 minutes 80/tcp nginx
root@jia:/etc# docker logs nginx
172.17.0.1 - - [08/Jan/2020:08:19:02 +0000] "GET / HTTP/1.1" 200 612 "-" "curl/7.58.0" "-"
172.17.0.1 - - [08/Jan/2020:08:19:04 +0000] "GET / HTTP/1.1" 200 612 "-" "curl/7.58.0" "-"
172.17.0.1 - - [08/Jan/2020:08:19:07 +0000] "GET / HTTP/1.1" 200 612 "-" "curl/7.58.0" "-"
root@jia:/etc#

实时显示nginx容器的日志

root@jia:/etc# docker run --name nginx -itd nginx:latest //创建并启动nginx容器
85c8be92df44960e0973ae2b48907661679d921d0523cb93526351f07850f290
root@jia:/etc# docker ps -a //查看容器
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
85c8be92df44 nginx:latest "nginx -g 'daemon of…" 4 seconds ago Up 3 seconds 80/tcp nginx
root@jia:~# docker inspect nginx | IPAddress //查看容器的ip地址
IPAddress: command not found
root@jia:~# docker inspect nginx | grep IPAddress
"SecondaryIPAddresses": null,
"IPAddress": "172.17.0.2",
"IPAddress": "172.17.0.2",
root@jia:~# curl 127.0.0.1 //访问nginx服务



Welcome to nginx!



Welcome to nginx!


If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.

For online documentation and support please refer to
nginx.org.

Commercial support is available at
nginx.com.

Thank you for using nginx.




root@jia:/etc# docker logs -f nginx //输出日志信息
172.17.0.1 - - [08/Jan/2020:08:19:02 +0000] "GET / HTTP/1.1" 200 612 "-" "curl/7.58.0" "-"
172.17.0.1 - - [08/Jan/2020:08:19:04 +0000] "GET / HTTP/1.1" 200 612 "-" "curl/7.58.0" "-"
172.17.0.1 - - [08/Jan/2020:08:19:07 +0000] "GET / HTTP/1.1" 200 612 "-" "curl/7.58.0" "-"

port

查看容器的端口映射情况

语法

docker port 容器ID/容器名称
示例

列出nginx容器所有端口映射情况

root@jia:/etc# docker run --name nginx -itd -P nginx:latest //创建并启动容器,映射容器所有端口
b4e3a51697c2e35b4a17acee93630ac77c6e9fe94df99c70750b60c4f87b535a
root@jia:/etc# docker ps -a //查看容器
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b4e3a51697c2 nginx:latest "nginx -g 'daemon of…" 4 seconds ago Up 3 seconds 0.0.0.0:32768->80/tcp nginx
root@jia:/etc# docker port nginx //显示容器端口映射情况
80/tcp -> 0.0.0.0:32768
root@jia:/etc#

ps

列出容器列表

语法

docker ps 参数
参数说明

--all , -a:查看所有容器
--filter , -f:根据相关条件进行过滤
--format: 使用Go模板打印漂亮的容器
--last , -n:显示第几个创建的容器
--latest , -l:显示最新创建的容器
--no-trunc:显示详细信息
--quiet , -q:只显示容器ID
--size , -s:显示容器的总大小
示例

查看所有容器

root@jia:~# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
79b53ebbc86e centos:latest "/bin/bash" 5 seconds ago Created fervent_payne
b4e3a51697c2 nginx:latest "nginx -g 'daemon of…" 13 minutes ago Up 13 minutes 0.0.0.0:32768->80/tcp nginx
root@jia:~#
查看正在运行的容器

root@jia:~# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b4e3a51697c2 nginx:latest "nginx -g 'daemon of…" 13 minutes ago Up 13 minutes 0.0.0.0:32768->80/tcp nginx
root@jia:~#

restart

重新启动容器

语法

docker restart 容器名称/容器ID

参数

-t:设置重启执行时间
示例

root@jia:~# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b4e3a51697c2 nginx:latest "nginx -g 'daemon of…" 16 minutes ago Up 16 minutes 0.0.0.0:32768->80/tcp nginx
root@jia:~# docker restart nginx
nginx
root@jia:~#

rm

删除容器

语法

docker rm 参数 容器ID/容器名称

参数

--force , -f:根据条件进行删除容器,强制删除正在运行的容器
--link , -l:移除容器间的网络连接,而非容器本身
-v, --volumes:删除与容器关联的文件系统
示例

删除nginx容器

root@jia:~# docker ps -a //查看容器
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c3800e1bda43 centos "/bin/bash" About a minute ago Up About a minute centos
b4e3a51697c2 nginx:latest "nginx -g 'daemon of…" 22 minutes ago Up 5 minutes 0.0.0.0:32769->80/tcp nginx
root@jia:~# docker rm nginx //删除容器,但nginx容器正在运行所以无法使用此参数删除
Error response from daemon: You cannot remove a running container b4e3a51697c2e35b4a17acee93630ac77c6e9fe94df99c70750b60c4f87b535a. Stop the container before attempting removal or force remove
root@jia:~# docker rm -f nginx //强制删除nginx容器
nginx
root@jia:~# docker ps -a //查看容器
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c3800e1bda43 centos "/bin/bash" About a minute ago Up About a minute centos
root@jia:~#
删除所有容器

root@jia:~# docker ps -a //查看容器
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4ee9b7488e32 nginx "nginx -g 'daemon of…" 26 seconds ago Up 25 seconds 80/tcp nginx
c3800e1bda43 centos "/bin/bash" 4 minutes ago Up 4 minutes centos
root@jia:~# docker rm $(docker ps -a -q) //删除容器失败,因为容器正在运行
Error response from daemon: You cannot remove a running container 4ee9b7488e323c80d9acaa01a214d00bc3072e2430df5ce7a0560acea0c9587c. Stop the container before attempting removal or force remove
Error response from daemon: You cannot remove a running container c3800e1bda43416add00ac18fb9c2d15e7d106e302ceef090e04d7fa6133368d. Stop the container before attempting removal or force remove
root@jia:~# docker rm -f $(docker ps -a -q) //删除所有容器
4ee9b7488e32
c3800e1bda43
root@jia:~# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
root@jia:~#

rmi

删除本地镜像

语法

docker rmi 参数 镜像名称/镜像ID

参数

--force , -f:强制删除
--no-prune:不移除该镜像的过程镜像,默认移除
示例

默认删除镜像

root@jia:~# docker images //查看本地镜像
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest f7bb5701a33c 10 days ago 126MB
ubuntu latest 549b9b86cb8d 2 weeks ago 64.2MB
centos latest 0f3e07c0138f 3 months ago 220MB
root@jia:~# docker rmi 549b9b86cb8d //删除ubuntu的镜像
Untagged: ubuntu:latest
Untagged: ubuntu@sha256:250cc6f3f3ffc5cdaa9d8f4946ac79821aafb4d3afc93928f0de9336eba21aa4
Deleted: sha256:549b9b86cb8d75a2b668c21c50ee092716d070f129fd1493f95ab7e43767eab8
Deleted: sha256:7c52cdc1e32d67e3d5d9f83c95ebe18a58857e68bb6985b0381ebdcec73ff303
Deleted: sha256:a3c2e83788e20188bb7d720f36ebeef2f111c7b939f1b19aa1b4756791beece0
Deleted: sha256:61199b56f34827cbab596c63fd6e0ac0c448faa7e026e330994818190852d479
Deleted: sha256:2dc9f76fb25b31e0ae9d36adce713364c682ba0d2fa70756486e5cedfaf40012
root@jia:~# docker images //查看本地镜像
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest f7bb5701a33c 10 days ago 126MB
centos latest 0f3e07c0138f 3 months ago 220MB
root@jia:~#

强制删除正在运行的镜像

root@jia:~# docker run -itd --name nginx nginx //启动创建容器
36b203a3fb5cf8fe6a1e13e298998c8510f7d24e49da36ada8d7181d89b16089
root@jia:~# docker ps -a //查看容器
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
36b203a3fb5c nginx "nginx -g 'daemon of…" 3 seconds ago Up 2 seconds 80/tcp nginx
root@jia:~# docker images //查看本地镜像
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest f7bb5701a33c 10 days ago 126MB
centos latest 0f3e07c0138f 3 months ago 220MB
root@jia:~# docker rmi nginx:latest //默认删除镜像,删除失败,报错镜像正在使用
Error response from daemon: conflict: unable to remove repository reference "nginx:latest" (must force) - container 36b203a3fb5c is using its referenced image f7bb5701a33c
root@jia:~# docker rmi -f nginx:latest //强制删除镜像
Untagged: nginx:latest
Untagged: nginx@sha256:b2d89d0a210398b4d1120b3e3a7672c16a4ba09c2c4a0395f18b9f7999b768f2
root@jia:~# docker images //查看镜像
REPOSITORY TAG IMAGE ID CREATED SIZE
f7bb5701a33c 10 days ago 126MB
centos latest 0f3e07c0138f 3 months ago 220MB
root@jia:~#

注意:当强制删除镜像后,会直接删除,但是会生成新的镜像,容器不会被删除

save

保存镜像为tar包

语法

docker save 参数 镜像名称 文件目录及名称.tar

参数说明

--output , -o:保存到某文件
示例

将nginx镜像保存为文件

root@jia:/jia/jia# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest f7bb5701a33c 11 days ago 126MB
centos latest 0f3e07c0138f 3 months ago 220MB
root@jia:/jia/jia# docker save nginx:latest > nginx.tar
root@jia:/jia/jia# ls
nginx.tar
root@jia:/jia/jia#
将多个镜像保存到一个文件

root@jia:/jia/jia# docker save -o test.tar nginx:latest centos:latest
root@jia:/jia/jia# ls
nginx.tar test.tar
root@jia:/jia/jia#
使用gzip+tar进行打包压缩

root@jia:/jia/jia# docker save nginx:latest | gzip > nginx.tar.gz
root@jia:/jia/jia# ls -lh //查看目录中文件长格式显示
total 513M
-rw-r--r-- 1 root root 125M Jan 9 16:57 nginx.tar
-rw-r--r-- 1 root root 47M Jan 9 17:03 nginx.tar.gz
-rw------- 1 root root 342M Jan 9 17:00 test.tar
root@jia:/jia/jia#

top

查看容器中进程信息

语法

docker top 参数 容器ID/容器名称

示例
查看nginx容器中所有进程信息

root@jia:/jia/jia# docker run --name nginx -itd nginx:latest //创建启动nginx容器
69e353d8564025e07ee201098cafb9870d95b92edf990db2455aa6261c0bede6
root@jia:/jia/jia# docker ps -a //列出所有容器
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
69e353d85640 nginx:latest "nginx -g 'daemon of…" 5 seconds ago Up 4 seconds 80/tcp nginx
root@jia:/jia/jia# docker top nginx
UID PID PPID C STIME TTY TIME CMD
root 28665 28637 1 17:08 pts/0 00:00:00 nginx: master process nginx -g daemon off;
systemd+ 28724 28665 0 17:08 pts/0 00:00:00 nginx: worker process
root@jia:/jia/jia#

version

查看docker软件版本

语法

docker version 参数
参数说明

-f, --format:使用给定的Go模板格式化输出
--kubeconfig:Kubernetes配置文件
示例
查看docker版本详细信息

root@jia:/jia/jia# docker version
Client: Docker Engine - Community
Version: 19.03.5
API version: 1.40
Go version: go1.12.12
Git commit: 633a0ea838
Built: Wed Nov 13 07:29:52 2019
OS/Arch: linux/amd64
Experimental: false

Server: Docker Engine - Community
Engine:
Version: 19.03.5
API version: 1.40 (minimum version 1.12)
Go version: go1.12.12
Git commit: 633a0ea838
Built: Wed Nov 13 07:28:22 2019
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.2.10
GitCommit: b34a5c8af56e510852c35414db4c1f4fa6172339
runc:
Version: 1.0.0-rc8+dev
GitCommit: 3e425f80a8c931f88e6d94a8c831b9d5aa481657
docker-init:
Version: 0.18.0
GitCommit: fec3683
root@jia:/jia/jia#
查看docker版本

root@jia:/jia/jia# docker version --format '{{.Server.Version}}'
19.03.5
root@jia:/jia/jia#

events

查看docker服务器实时事件

语法

docker events 参数
参数说明

-f,--filter:根据条件过滤事件
--since :从指定的时间戳后显示所有事件
--until :流水时间显示到指定的时间为止
--format:使用给定的Go模板格式化输出
示例
容器启动停止,使用events显示事件

root@jia:/jia/jia# docker ps -a //查看容器列表
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
69e353d85640 nginx:latest "nginx -g 'daemon of…" 13 minutes ago Up 13 minutes 80/tcp nginx
root@jia:/jia/jia# docker stop nginx //停止容器
nginx
root@jia:/jia/jia# docker start nginx //启动容器
nginx
root@jia:/jia/jia#

root@jia:~# docker events //查看实时事件,注意此命令不会自动终止需要crtl+c终止
2020-01-09T17:22:26.880177305+08:00 container kill 69e353d8564025e07ee201098cafb9870d95b92edf990db2455aa6261c0bede6 (image=nginx:latest, maintainer=NGINX Docker Maintainers docker-maint@nginx.com, name=nginx, signal=15)
2020-01-09T17:22:27.005016080+08:00 container die 69e353d8564025e07ee201098cafb9870d95b92edf990db2455aa6261c0bede6 (exitCode=0, image=nginx:latest, maintainer=NGINX Docker Maintainers docker-maint@nginx.com, name=nginx)
2020-01-09T17:22:27.103273324+08:00 network disconnect f2ccf449e47668433fb96511ef577c7515be7f481a7a9cb386c9d46650cbabbf (container=69e353d8564025e07ee201098cafb9870d95b92edf990db2455aa6261c0bede6, name=bridge, type=bridge)
2020-01-09T17:22:27.145650268+08:00 container stop 69e353d8564025e07ee201098cafb9870d95b92edf990db2455aa6261c0bede6 (image=nginx:latest, maintainer=NGINX Docker Maintainers docker-maint@nginx.com, name=nginx)
2020-01-09T17:22:33.680477968+08:00 network connect f2ccf449e47668433fb96511ef577c7515be7f481a7a9cb386c9d46650cbabbf (container=69e353d8564025e07ee201098cafb9870d95b92edf990db2455aa6261c0bede6, name=bridge, type=bridge)
2020-01-09T17:22:34.093551544+08:00 container start 69e353d8564025e07ee201098cafb9870d95b92edf990db2455aa6261c0bede6 (image=nginx:latest, maintainer=NGINX Docker Maintainers docker-maint@nginx.com, name=nginx)

import

从tar文件导入docker为镜像

语法

docker import 参数 tar文件目录名称 导入的镜像名称:tag(版本)

参数说明

--change , -c: 将Dockerfile指令应用于创建的映像
--message , -m: 设置导入图像的提交消息
示例
将nginx.tar的镜像包导入docker并命名nginx版本V1

root@jia:/jia/jia# docker images //查看本地所有镜像
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest f7bb5701a33c 11 days ago 126MB
centos latest 0f3e07c0138f 3 months ago 220MB
root@jia:/jia/jia# ls
nginx.tar nginx.tar.gz test.tar
root@jia:/jia/jia# docker import nginx.tar nginx:V1
sha256:07b2b1766ed11df9e7a12f98a4c5127c1aa0087e6b7d4eb0bc21490f168c1b0d
root@jia:/jia/jia# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx V1 07b2b1766ed1 3 seconds ago 130MB
nginx latest f7bb5701a33c 11 days ago 126MB
centos latest 0f3e07c0138f 3 months ago 220MB
root@jia:/jia/jia#
导入使用tar打包gzip压缩的镜像

root@jia:/jia/jia# docker import nginx.tar.gz nginx:V2
sha256:ca7505dbea914f7babb1ed3667d1a133461c344d92ea978585b64fe7dabf5b36
root@jia:/jia/jia# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx V2 ca7505dbea91 8 seconds ago 130MB
nginx V1 07b2b1766ed1 2 minutes ago 130MB
nginx latest f7bb5701a33c 11 days ago 126MB
centos latest 0f3e07c0138f 3 months ago 220MB
root@jia:/jia/jia#

export

从docker导出容器为tar文件

语法

docker export 参数 容器名称/容器ID

参数说明

--output , -o:写入文件
示例
导出centos容器并命名为centos.tar

root@jia:/jia/jia# docker run --name centos -itd centos:latest //创建并启动centos容器
06b5abbb068dc493056aae6f1526b81028f931fd160fe470a937e15ac0110bdf
root@jia:/jia/jia# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
06b5abbb068d centos:latest "/bin/bash" 4 seconds ago Up 3 seconds centos
69e353d85640 nginx:latest "nginx -g 'daemon of…" 32 minutes ago Up 18 minutes 80/tcp nginx
root@jia:/jia/jia# docker export centos > centos.tar
root@jia:/jia/jia# ls
centos.tar nginx.tar nginx.tar.gz test.tar
root@jia:/jia/jia#
导出centos容器并命名为centos.tar.gz,使用gzip压缩

root@jia:/jia/jia# docker export centos > centos.tar
root@jia:/jia/jia# ls
centos.tar nginx.tar nginx.tar.gz test.tar
root@jia:/jia/jia# docker export centos | gzip > centos.tar.gz
root@jia:/jia/jia# ls -lh
total 796M
-rw-r--r-- 1 root root 217M Jan 9 17:41 centos.tar
-rw-r--r-- 1 root root 67M Jan 9 17:43 centos.tar.gz
-rw-r--r-- 1 root root 125M Jan 9 16:57 nginx.tar
-rw-r--r-- 1 root root 47M Jan 9 17:03 nginx.tar.gz
-rw------- 1 root root 342M Jan 9 17:00 test.tar
root@jia:/jia/jia#
导出nginx容器,并命名nginx1.tar

root@jia:/jia/jia# docker export -o nginx1.tar nginx
root@jia:/jia/jia# ls
centos.tar centos.tar.gz nginx1.tar nginx.tar nginx.tar.gz test.tar
root@jia:/jia/jia#

info

查看docker系统信息

语法

docekr info 参数
参数说明

--format , -f:使用给定的Go模板格式化输出
示例

root@jia:/jia/jia# docker info
Client:
Debug Mode: false

Server:
Containers: 2
Running: 2
Paused: 0
Stopped: 0
Images: 4
Server Version: 19.03.5
Storage Driver: overlay2
Backing Filesystem: extfs
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: b34a5c8af56e510852c35414db4c1f4fa6172339
runc version: 3e425f80a8c931f88e6d94a8c831b9d5aa481657
init version: fec3683
Security Options:
apparmor
seccomp
Profile: default
Kernel Version: 4.15.0-65-generic
Operating System: Ubuntu 18.04.3 LTS
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 3.852GiB
Name: jia
ID: 74XS:4TCO:7OQX:BKF2:O2WW:JYEF:6Y6Q:RT3X:YVRO:Y2LP:JZIA:AHSB
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
Live Restore Enabled: false

WARNING: No swap limit support
root@jia:/jia/jia#

inspect

查看容器详细信息

语法

docker inspect 参数 容器ID/容器名称

参数说明

--format , -f:使用给定的Go模板格式化输出
--size , -s:显示文件总大小
--type :为指定类型返回JSON
示例

获取容器IP地址

第一种方式:

root@jia:/jia/jia# docker ps -a //查看容器
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
06b5abbb068d centos:latest "/bin/bash" 17 hours ago Up 17 hours centos
69e353d85640 nginx:latest "nginx -g 'daemon of…" 17 hours ago Up 17 hours 80/tcp nginx
root@jia:/jia/jia# docker inspect centos | grep IPAddress
"SecondaryIPAddresses": null,
"IPAddress": "172.17.0.3",
"IPAddress": "172.17.0.3",
root@jia:/jia/jia#

第二种方式:(只显示IP地址)

root@jia:/jia/jia# docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' centos
172.17.0.3
root@jia:/jia/jia#

获取容器MAC地址

root@jia:/jia/jia# docker inspect centos | grep MacAddress
"MacAddress": "02:42:ac:11:00:03",
"MacAddress": "02:42:ac:11:00:03",
root@jia:/jia/jia#
获取容器日志目录

root@jia:/jia/jia# docker inspect centos | grep log
"LogPath": "/var/lib/docker/containers/06b5abbb068dc493056aae6f1526b81028f931fd160fe470a937e15ac0110bdf/06b5abbb068dc493056aae6f1526b81028f931fd160fe470a937e15ac0110bdf-json.log",
root@jia:/jia/jia#

kill

杀死正在运行的容器

语法

docker kill 参数 容器ID/容器名称
参数说明

--signal , -s:向容器发送信号
示例

杀死正在运行的centos容器

root@jia:/jia/jia# docker ps //查看容器
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
06b5abbb068d centos:latest "/bin/bash" 17 hours ago Up 17 hours centos
69e353d85640 nginx:latest "nginx -g 'daemon of…" 18 hours ago Up 17 hours 80/tcp nginx
root@jia:/jia/jia# docker kill centos
centos
root@jia:/jia/jia# docker ps -a //查看所有容器
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
06b5abbb068d centos:latest "/bin/bash" 17 hours ago Exited (137) 6 seconds ago centos
69e353d85640 nginx:latest "nginx -g 'daemon of…" 18 hours ago Up 17 hours 80/tcp nginx
root@jia:/jia/jia#
杀死正在运行的nginx容器,发送kill信号

root@jia:/jia/jia# docker kill --signal=kill nginx
nginx
root@jia:/jia/jia# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
06b5abbb068d centos:latest "/bin/bash" 17 hours ago Exited (137) 3 minutes ago centos
69e353d85640 nginx:latest "nginx -g 'daemon of…" 18 hours ago Exited (137) 1 second ago nginx
root@jia:/jia/jia#

load

从tar文件中加载为docker镜像

语法

docker load 参数 tar文件
参数说明

-i, --input:从tar存档文件中读取,而不是从STDIN中读取
--quiet , -q:显示简要信息
示例

导入nginx镜像

root@jia:/jia/jia# docker images //查看所有镜像
REPOSITORY TAG IMAGE ID CREATED SIZE
centos latest 0f3e07c0138f 3 months ago 220MB
root@jia:/jia/jia# docker load < nginx.tar.gz
556c5fb0d91b: Loading layer [>] 72.48MB/72.48MB
49434cc20e95: Loading layer [
>] 57.67MB/57.67MB
75248c0d5438: Loading layer [==================================================>] 3.584kB/3.584kB
Loaded image: nginx:latest
root@jia:/jia/jia# docker images //查看所有镜像
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest f7bb5701a33c 12 days ago 126MB
centos latest 0f3e07c0138f 3 months ago 220MB
root@jia:/jia/jia#

pause

暂停容器

语法

docker pause 容器ID/容器名称
示例

暂停centos容器

root@jia:/jia/jia# docker run -itd --name centos centos:latest //创建并运行
48e49042b927f427aed68437e12e5acd14b82e3a33a71b6f236bcef5c3edd41d
root@jia:/jia/jia# docker ps //查看容器
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
48e49042b927 centos:latest "/bin/bash" 2 seconds ago Up 2 seconds centos
root@jia:/jia/jia# docker pause centos
centos
root@jia:/jia/jia# docker ps -a //查看所有容器
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
48e49042b927 centos:latest "/bin/bash" 14 seconds ago Up 13 seconds (Paused) centos
root@jia:/jia/jia#

容器暂停后会在状态处加(Paused)

unpause

取消容器暂停状态

语法

docker unpause 容器ID/容器名称
示例

取消centos容器的暂停操作

root@jia:/jia/jia# docker ps -a //查看所有容器
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
48e49042b927 centos:latest "/bin/bash" 14 seconds ago Up 13 seconds (Paused) centos
root@jia:/jia/jia# docker unpause centos
centos
root@jia:/jia/jia# docker ps -a //查看所有容器
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
48e49042b927 centos:latest "/bin/bash" 5 minutes ago Up 5 minutes centos
root@jia:/jia/jia#

tag

给镜像进行打标签

语法

docker tag 源镜像ID/源镜像名称:tag(版本) 目标镜像名称:tag(版本)
示例

给centos镜像重新打标签

root@jia:/jia/jia# docker tag centos:latest centos:V1
root@jia:/jia/jia# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest f7bb5701a33c 12 days ago 126MB
centos V1 0f3e07c0138f 3 months ago 220MB
centos latest 0f3e07c0138f 3 months ago 220MB
root@jia:/jia/jia#

wait

阻塞运行直到容器停止,然后打印出它的退出代码

语法

docekr wait 容器ID/容器名称
示例

root@jia:/jia/jia# docker run -itd --name nginx nginx //创建启动容器
57af5446f0eaff56a54c3a5559ac0073511de9b9f48c93ff04bbcd0c62b3a809
root@jia:/jia/jia# docker ps //查看容器
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
57af5446f0ea nginx "nginx -g 'daemon of…" 4 seconds ago Up 3 seconds 80/tcp nginx
root@jia:/jia/jia# docker inspect nginx | grep IPAddress //查看容器IP地址
"SecondaryIPAddresses": null,
"IPAddress": "172.17.0.2",
"IPAddress": "172.17.0.2",
root@jia:/jia/jia# curl 172.17.0.2 //访问容器的80端口



Welcome to nginx!



Welcome to nginx!


If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.

For online documentation and support please refer to
nginx.org.

Commercial support is available at
nginx.com.

Thank you for using nginx.




root@jia:/jia/jia# docker wait nginx //启动阻塞

root@jia:~# curl 172.18.0.2 //发现无法访问容器nginx页面

【华为云-精选30+云服务产品助力好友上云】
在这里插入图片描述

posted @ 2020-01-10 12:28  避凉闲庭  阅读(486)  评论(0)    收藏  举报