零基础学Docker(2)--基本命令
上期我们了解了Docker的一些基本信息也成功地安装了Docker这里我们可以做个小测试:
docker run hello-word
运行上面代码表示运行hello-world
的镜像:
可以看到,首先提示了没有在本地找到 "hell-world:latest"这个镜像,后面又提示尝试从远程仓库拉取这个镜像,拉取成功等等
1. 帮助命令
1.1 docker version
显示docker的版本信息
1.2 docker info
显示docker的系统信息,包括容器数量镜像数量运行的数据量等信息
1.3 docker 命令 --help
显示命令的帮助信息
在我们学习过程中会经常用到这个命令,可以查看各种命令的使用方法
2. 镜像命令
2.1 docker images
查看本地主机上的镜像
可以看到这里就显示出了本地的镜像信息:
- REPOSITORY:镜像的仓库源
- TAG:镜像的标签
- IMAGE ID:镜像的ID
- CREATED:镜像的创建时间
- SIZE:镜像的大小
我们使用 help命令查看 docker images是否还有其它功能:
可以看到images命令还有一些可选项,其中比较常用到的是 -a展示所有镜像,和-q只显示id
2.2 docker pull
下载镜像
这里执行docker pull mysql实际执行的是
docker pull docker.io/library/mysql:latest
我们也可以指定版本下载:
这里可以看到分层下载的好处,之前版本能共用的就不会下载了
2.3 docker rmi
删除镜像
通过id删除:
删除所有:
$()表示传参数,这里参数是docker images -aq返回的所有镜像的id
3. 容器命令
3.1 docker run
创建并启动一个容器
下载一个centos的镜像来进行测试
docker run -it centos bin/bash
-it:两个参数的组合,-i 保持标准输入打开,-t 分配一个伪终端(让你能与容器交互)
可以看到运行后主机名变了说明我们进入了centos容器
可以输入exit命令,停止容器并退出
也可以使用Ctrl + P + Q,不停止容器退出
3.2 docker ps
查看运行中的容器
可以看到这里没有,因为我们刚才使用的exit退出,会停止容器
我们可以使用 -a参数,可以展示运行中和运行过的容器:
还可以使用 -n指定查询的数量:
-q 只显示id:
3.3 docker rm
删除容器
删除后会返回容器的id,如果要删除正在运行的容器可以使用-f参数
3.4 启停容器
docker start 启动容器
docker restart重启容器
docker stop 停止容器
4. 其它常用命令
4.1 后台启动容器
docker run -d 镜像名
这里启动后我们使用ps发现没有在运行的容器,这是因为我们启动的容器中没有东西在运行,于是自动停止了
我们可以在启动时让centos做一些事情:
docker run -d centos /bin/sh -c "while true; do echo study docker;sleep 1;done"
这里表示让centos每间隔一秒输出study docker
4.2 查看日志
查看容器当前的所有日志
docker logs 容器id
查看最新的5条日志
docker logs -n 5 容器id
docker -f 容器id
跟踪日志输出,即后面有新日志会立刻显示出来
docker -t 容器id,会在每行日志前面显示日志生成的时间
4.3 查看容器中进程的信息
docker top 容器id
4.4 查看进程元数据
docker inspect 容器id
执行后会输出非常多信息:
4.5 进入当前正在运行的容器
docker exec -it 容器id bashShell
-it表示以交换模式运行
可以看到成功进入了centos容器并能正常执行命令
也可以使用 attach 命令
docker attach 容器id
区别是,exec是进入容器后开启一个新的终端,attach是进入容器正在执行的终端不会启动新的进程,如果我们现在使用attach进入循环输出study docker的终端。
4.6 从容器拷贝文件到主机
docker cp 容器id:文件路径 拷贝到的位置
这里我们在容器里创建了一个test.java文件
在主机中使用cp命令
可以看到成功拷贝了,注意,这里的容器可以是不在运行状态的,只要容器没有被删除,文件就会存在