一、Docker 常用命令
Docker:第二章:Docker常用命令
1 、Docker 基本命令
1.1 、帮助命令
版本信息: docker version
详细信息: docker info
帮助文档: docker --help
(列出所有的 docker 命令)
1.2 、服务相关命令
启动 docker 服务:systemctl start docker
停止 docker 服务:systemctl stop docker
查看服务状态: systemctl status docker
重启 docker 服务:systemctl restart docker
开机启动:systemctl enable docker
2 、Docker 镜像命令
2.1、列出本机镜像
docker images
: 列出本机镜像
表头说明
![]() | |
OPTIONS 说明
docker images -q
2.2 、查找镜像
docker search
镜像名称: 查找镜像 //例如:docker search tomcat
表头说明:
![]() |
OPTIONS 说明
2.3 、下载镜像
docker pull
镜像名称:镜像版本:
下载镜像 //例如:docker pull tomcat
使用 docker images
查看镜像列表,可以看到 tomcat 的体积非常大,因为这是一个独立的集装箱环境,包含了所有运行 tomcat 所必须的底层依赖.
docker pull redis:3.2
下载指定版本的 redis
版本号(TAG):假设一个镜像的 latest 版本是 1.9.2
先下载几个常用镜像:
docker pull centos
:下载 centos 镜像
docker pull nginx
: 下载 nginx 镜像
docker pull tomcat
: 下载 tomcat 镜像
docker pull java:8
下载 jdk8 镜像
2.4 、删除镜像
基本命令:
![]() |
强制删除:
docker rmi hello-world
此时删除会报错,因为有容器 hello-world 已经创建
Error response from daemon: conflict: unable to remove repository reference “hello-world” (must force) - container 8932d136dbc5 is using its referenced image bf756fb1ae65
docker rmi -f hello-world
#强制删除已经创建了实例的镜像
批量删除:
2.5 、查看镜像详情
docker inspect
镜像名称: 查看镜像详情
docker inspect tomcat:8.5.32 | grep -i version
#看镜像含有版本的行,-i:忽略大小写
2.6 、镜像操作小结
docker images
# 列出本地主机上的镜像
docker search [options] <某个 XXX 镜像名字>
# 搜索镜像
docker pull <某个 XXX 镜像名字>
# 下载镜像
docker rmi [options] <某个 XXX 镜像名字 ID>
# 删除镜像 #-f 强制删除
3 、容器命令
3.1 、列出容器
docker ps
#列出所有正在运行的容器,不包含已停止的容器
docker ps -a
#列出当前所有已经创建的容器
表头说明
OPTIONS 说明
docker ps -qa
#列出所有容器的编号
3.2 、创建容器
docker create
镜像名称 #根据镜像名创建一个容器
docker create --name tomcat1 镜像名称
#根据镜像创建名为 tomcat1 的容器
docker create 镜像id
#根据镜像 id 新建一个容器
3.3、启动、停止、重启容器
docker start 容器id
docker restart 容器id
docker stop 容器id
docker kill 容器id
#根据容器id强制停止一个容器
3.4、创建并启动容器
相当于 docker create + docker start
当本地镜像不存在时,相当于 docker pull + docker create + docker start
docker run tomca
t #根据镜像名创建一个容器,并启动
docker run --name tomcat2 tomcat
#为容器起一个别名 tomcat2,并启动
3.5、删除容器
docker rm 容器名称
#删除未启动的容器
docker rm -f 容器名称
#强制删除已启动的容器
docker rm -f $(docker ps -qa)
#删除所有容器,包括正在运行的容器
docker ps -a -q | xargs docker rm
#删除所有容器,不包括正在运行的容器
3.6、容器操作小结
4 、启动交互式容器
4.1 、启动 CentOS
docker run centos
默认情况下,centos 启动后无事可做,docker 会立即停止刚刚启动的 centos 容器,如下图:
使用 docker run centos
运行一个 centos 容器,随即使用 docker ps
列出正在运行的容器列表,未发现刚刚运行的 centos;
使用 docker ps -a
列出全部容器列表,发现 centos 容器已停止
4.2 、交互式启动:-it
OPTIONS 说明:
此时可以像在本地服务器上一样在容器内执行 Linux 命令,例如查看内核版本号、查看 Linux 发行版本号等(如果在宿主机上也查看内核版本号,那么可以发现容器使用的是宿主机的内核)
4.3 、退出容器
4.4 、进入容器
当容器未停止时,在宿主机中可以进入到容器内部命令行
docker attach centos1
4.5、在容器外执行容器命令
在容器外部执行命令,使命令在容器内部运行,并返回结果
![]() |
比较下面两个命令的执行结果:
第一个显示的是 centos 容器的版本,第二个显示的是宿主机 centos 的版本
补充:
5 、启动守护式容器
5.1 、启动 tomcat
默认情况下,tomcat 的启动会占用当前命令行窗口,并进入挂起状态
docker run tomcat
守护式启动:-d
我们可以以守护进程的方式启动 tomcat 容器
docker run -d --name tomcat1 tomcat
#在后台启动 tomcat,不占用命令行资源
5.2 、映射容器端口:-p
默认情况下,我们无法通过 docker 所在的宿主机访问 tomcat 容器的 8080 端口, 需要将 8080 端口映射到宿主机的某一个端口上
OPTIONS 说明
-p: 指定端口映射,有以下四种格式
访问前面启动的 tomcat 容器:如 http://192.168.100.101:7777,发现报告 404 错误,原因是 docker latest 版本的 tomcat 下的 webapps 中没有部署任何默认项目, 因 此 启 动 浏 览 器 无 法 访 问 tomcat 默 认 主 页 面 。
5.3、执行命令:docker exec
进入到容器内部的文件系统:
docker exec -it tomcat2 /bin/bash
查看 tomcat 所在环境的目录,在 tomcat 容器的宿主机中执行命令:
下载 8.5.32 版本的 docker tomcat 镜像:
docker pull tomcat:8.5.32
执行了镜像命令就带有tomcate的默认主页了
docker run -d -p 8888:8080 --name tomcat3 tomcat:8.5.32
访 问 :http://本机ip地址:8888, 可 以 看 到 tomcat 的 默 认 主 页
5.4、查看容器详情
docker inspect tomcat3