一. 基本命令
#查看docker版本
docker version
#查看docker基本信息
docker info
#查看docker命令
docker --help
二、docker镜像
#拉取镜像
docker pull
# docker pull java 从Docker Hub下载java最新版镜像
#查看docker镜像
docker images
#从Docker Hub查找镜像
docker search
# docker search tomcat 从Docker Hub上查找tomcat镜像
# 使用 Dockerfile 创建镜像 (详细举例参考以下docker build 扩展)
docker build
#删除镜像
docker rmi
# docker rmi -f hello-world 从Docker中强制删除hello-world镜像
docker build 扩展
# 使用当前目录的 Dockerfile 创建镜像,标签为 runoob/ubuntu:v1。
docker build -t runoob/ubuntu:v1 .
#使用URL github.com/creack/docker-firefox 的 Dockerfile 创建镜像。
docker build github.com/creack/docker-firefox
#也可以通过 -f Dockerfile 文件的位置:
docker build -f /path/to/a/Dockerfile .
#在 Docker 守护进程执行 Dockerfile 中的指令前,首先会对 Dockerfile 进行语法检查,有语法错误时会返回:
docker build -t test/myapp .
Sending build context to Docker daemon 2.048 kB
Error response from daemon: Unknown instruction: RUNCMD
三、docker容器
# 查看容器
docker ps
# 创建一个新的容器并运行一个命令 (详细举例参考以下docker run 扩展)
docker run
#启动一个或多个已经被停止的容器
docker start
# docker start myrunoob 启动已被停止的容器myrunoob
#停止一个运行中的容器
docker stop
# docker stop myrunoob 停止运行中的容器myrunoob
#重启容器
docker restart
# docker restart myrunoob 重启容器myrunoob
#停止一个运行中的容器:直接停止一个容器
docker kill
# docker kill -s KILL mynginx 杀掉运行中的容器mynginx
#删除一个或多个容器 (详细举例参考以下docker rm 扩展)
docker rm
#获取容器的日志
docker logs
# docker logs --since="2016-07-01" --tail=10 mynginx 查看容器mynginx从2016年7月1日后的最新10条日志。
#在运行的容器中执行命令
docker exec
# docker exec -it 9df70f9a0714 /bin/bash 对指定的容器ID执行 bash
docker run 扩展
# 使用docker镜像nginx:latest以后台模式启动一个容器,并将容器命名为mynginx。
docker run --name mynginx -d nginx:latest
#使用镜像nginx:latest以后台模式启动一个容器,并将容器的80端口映射到主机随机端口。
docker run -P -d nginx:latest
#使用镜像 nginx:latest,以后台模式启动一个容器,将容器的 80 端口映射到主机的 80 端口,主机的目录 /data 映射到容器的 /data。
docker run -p 80:80 -v /data:/data -d nginx:latest
#绑定容器的 8080 端口,并将其映射到本地主机 127.0.0.1 的 80 端口上。
docker run -p 127.0.0.1:80:8080/tcp ubuntu bash
#使用镜像nginx:latest以交互模式启动一个容器,在容器内执行/bin/bash命令。
docker run -it nginx:latest /bin/bash
docker rm 扩展
#强制删除容器 db01、db02:
docker rm -f db01 db02
#移除容器 nginx01 对容器 db01 的连接,连接名 db:
docker rm -l db
#删除容器 nginx01, 并删除容器挂载的数据卷:
docker rm -v nginx01
#删除所有已经停止的容器:
docker rm $(docker ps -a -q)
PS: docker exec -it 9df70f9a0714 /bin/bash 在我本地运行时报错,如下
rpc error: code = 13 desc = invalid header field value "oci runtime error: exec failed: container_linux.go:247: starting container process caused "exec: "/bin/bash": stat /bin/bash: no such file or directory
将bash改写成sh重新执行
docker exec -it (名字/id) /bin/sh
就可以了