帮助命令
docker version 显示docker的版本信息
docker info 显示docker的系统信息
docker 命令 --help 帮助命令
镜像命令
docker images 查看本地主机上的镜像
docker search 搜索镜像
docker pull 镜像名[:tag] 下载镜像
docker rmi 删除镜像(docker rmi -f $(docker images -aq) 删除所有镜像 )
容器命令
exit 直接容器停止并退出
ctrl+P+Q 容器不停止退出
docker run [可选参数] Images 新建容器并启动
--name="name"
-d 后台方式运行
-it 交互方式运行
-p 指定容器的端口 -p 8080:8080
-p 主机端口:容器端口 #主机端口映射到容器端口
-p 容器端口
容器端口
docker ps 列出正在运行的容器
-a 列出历史运行过的容器
-n=个数 显示最近创建过的几个容器
-q 只显示容器编号
docker rm 删除容器,不能删除正在运行的容器,强制删除-f
docker rm -f $(docker ps -aq) 删除所有镜像
docker ps -a -q | xargs docker rm 删除所有容器
docker stop 停止当前正在运行容器
docker start 启动容器
docker restart 重启容器
docker kill 强制停止容器
常用其他命令
后台启动:
docker run -d 镜像名 #通过镜像启动容器,但是这样操作会发现容器立即停止了
容器使用后台运行,必须要有一个前台进程,docker发现没有前台应用,就会立即停止
容器发现自己没有提供服务,就会立即停止,就是没有程序了
查看日志:
docker logs -tf --tail 10 容器 #查看10条日志,可能会发现没有日志
自己编写一段shell脚本
查看容器中的进程信息:
docker top
查看镜像的元数据:
docker inspect
进入当前正在运行的容器:
通常容器都是使用后台方式运行的
docker exec -it 容器 bashShell
docker exec -it c95e353a67a5 /bin/bash
docker attach 容器id
docker exec 进入容器后开启一个新的终端,可以在里面操作
docker attach 进入容器正在执行的终端,不会启动新的进程
从容器内拷贝文件到主机:
docker cp 容器id:容器内的路径 目的主机路径
先在自己的home界面ls,没有456.java
进入容器,在容器的home界面创建456.java,然后退出容器,将此文件拷贝到主机的/home界面上,然后验证ls,拷贝成功
(拷贝是一个手动过程,之后使用卷的技术可以实现自动同步)
汇总部分命令
得到一份完整的命令列表 docker
启动docker systemctl start docker
查看docker并验证是否安装成功 docker --version
docker run hello-world
设置docker开机自动启动 systemctl enable docker
禁用docker守护进程开机启动 systemctl disable docker
以非root用户管理docker
sudo groupadd docker #创建docker组
sudo usermod -aG docker 用户名 #向docker组中添加用户
uname -a 显示操作系统的信息
cat /etc/issue 显示当前操作系统发行版信息
docker images 列出本地主机上的镜像
docker images -a(--all) 列出本地所有的镜像(含中间镜像层,默认情况下过滤掉中间镜像层)
docker images -f(--filter) 过滤镜像(还可以与since和before组合进行过滤)
docker images -q(--quiet) 只显示镜像ID
docker images --no-trunc 显示完整的镜像ID
docker images ubuntu --digests 显示镜像摘要值
docker pull ubuntu:14.04 拉取镜像
docker rmi$(docker images -f dangling=true -q) 删除无标签的所有镜像
docker tag 要命名的镜像 名称 #设置镜像标签,也就是给镜像添加一个名称,名称组件通常包括命名空间和仓库名称
一个完整的镜像名称:[主机名:端口]/命名空间/仓库名称:[标签]
docker inspect [-f(--format)] ubuntu 显示镜像(可以是容器)的详细信息,可使用-f显示特定内容
docker history ubuntu 查看镜像(不可以是容器)的构建历史,层次信息
docker history --no-trunc ubuntu 查看完整信息
docker search ubuntu 查找镜像
docker rmi [选项] ubuntu 删除镜像(如果一个镜像对应了多个标签,只有当最后一个标签被删除时,镜像才真正被删除)-f:删除与该ID匹配的所有镜像 --no-prune:表示不删除没有标签的父镜像
docker save --output hello-world.tar hello-world 将镜像导出到归档文件中,也就是将镜像保存到本地 ls -sh hello-world.tar 可以显示出归档文件
docker ps -a 列出本地主机上的所有容器列表(COMMAND表示容器启动时执行的命令)
docker ps --no-trunc 列出完整的容器ID
docker ps -s 可以查看容器的大小(第一个值表示容器可写层当前所用数据大小,第二个值是虚拟大小,表示该容器所用的只读镜像的数据量加上容器的可写层的和)
docker rename 现有名称 重命名名称 #为容器重命名
docker attach 将本地的标准输入、标准输出和错误流附加到正在运行的容器上,就是连接到正在运行的容器,进入容器
要连接的容器必须运行
root@ubuntu:/home# docker run -d --name centostest centos /usr/bin/top -b 2d36c132cdb8b42cecbdd997c6b71e174c3da45ed1985c845b2bf01d3e2ebcee
打开另一个终端:
wusa@ubuntu:~/Desktop$ docker attach centostest top - 07:43:36 up 1 day, 7:01, 0 users, load average: 0.87, 0.32, 0.17 Tasks: 1 total, 1 running, 0 sleeping, 0 stopped, 0 zombie %Cpu(s): 2.1 us, 1.5 sy, 0.0 ni, 96.4 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st MiB Mem : 3876.0 total, 1114.3 free, 1168.8 used, 1592.9 buff/cache MiB Swap: 923.3 total, 923.3 free, 0.0 used. 2453.4 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1 root 20 0 48996 3668 3132 R 0.0 0.1 0:00.17 top top - 07:43:39 up 1 day, 7:01, 0 users, load average: 0.87, 0.32, 0.17 Tasks: 1 total, 1 running, 0 sleeping, 0 stopped, 0 zombie %Cpu(s): 1.0 us, 1.2 sy, 0.0 ni, 97.8 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st MiB Mem : 3876.0 total, 1114.3 free, 1168.7 used, 1592.9 buff/cache MiB Swap: 923.3 total, 923.3 free, 0.0 used. 2453.4 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1 root 20 0 48996 3668 3132 R 0.0 0.1 0:00.17 top^C
Ctrl+C不仅会退出容器,而且会使容器终止,要使容器依然运行,要在docker run加上
--sig-proxy=false
docker commit 从当前容器创建新的镜像
docker cp 在容器和本地文件系统之间复制文件和目录
docker create 创建新的容器
docker diff 检查容器创建以来其文件系统上文件或目录的更改
docker exec 从正在运行的容器中执行命令
组合-it -d表示在后台运行命令
docker export 将容器的文件系统导出为一个归档文件
docker inspect 显示一个或多个容器的详细信息
docker kill 杀死一个正在运行的容器
docker logs 获取容器的日志信息
docker ps 输出容器列表
-a(--all) 显示所有容器,包括未运行的容器
-f(--filter) 根据条件过滤显示的容器
-l(--last) 显示最近创建的容器
-n(--last int) 列出最近创建的n个容器
--no-trunc 不截断输出,显示完整的容器信息
-q(--quiet) 采用静默模式,只输出容器ID
-s(--size) 显示总的文件大小
docker pause 暂停一个或多个容器内的所有进程
docker port 列出容器的端口映射或特定的映射
docker restart 重启一个或多个容器
docker rm 删除一个或多个容器
-f(--force) 强制删除
-l(--link) 设置是否删除容器的网络连接,而保留容器本身
-v(--volumes) 设置是否删除与容器关联的卷
docker run 创建一个新容器并运行
-d(--detach) 后台运行容器,返回容器ID
-i(--interactive) 让容器的标准输入保持打开,通常与-t同时使用
-t(--tty) 为容器重新分配一个伪输入终端
-p(--publish) 设置端口映射,格式为"主机端口:容器端口"
--dns 指定容器使用dns服务器,默认和主机的dns设置一致
--name 为容器指定一个名字
--rm 容器退出时自动删除
启动容器执行命令后自动终止:
docker run ubuntu /bin/echo "it is a container" 输出:it is a container
启动容器并允许和用户交互:
用exit或ctrl+D退出
root@ubuntu:/home# docker run -it ubuntu /bin/bash root@627ff0d14c38:/#
启动容器并让其以守护进程的形式在后台运行:
可以使用docker logs获取容器的输出信息
root@ubuntu:/home# docker run -d -p 80:80 --name testweb httpd 64ae6caf60c6a8080a2c9275621408d3fb284b63fae5295f8247268d3e074509
docker start 启动一个或多个已停止的容器
docker stats 显示容器资源使用统计信息的实时流
docker stop 停止一个或多个正在运行的容器
docker top 显示正在运行的容器
docker unpause 恢复一个或多个容器内被暂停的的所有进程
docker update 更新一个或多个容器配置
docker wait 阻塞一个或多个容器运行,知道容器停止运行,输出退出码
docker container prune 删除所有停止执行的镜像
systemctl daemon-reload
systemctl restart docker 重启docker
docker network connect 将容器连接到指定的网络
docker network create 创建一个网络
docker network disconnect 断开容器与指定网络的连接
docker network inspect 显示一个或多个网络的详细信息
docker network ls 显示网络列表
docker network prune 删除所有未使用的网络
docker network rm 删除一个或多个网络
docker info 查看docker主机当前使用的存储驱动
docker volume create 创建一个新的卷
docker volume ls 列出本地docker主机上的卷
docker volume inspect 查看卷的详细信息
docker volume prune 删除未被容器或者服务副本使用的全部卷
docker volume rm 删除未被使用的指定卷