1. 常见的Docker命令分类
不同使用场景下的命令分布图
2. Docker镜像操作相关
当运行容器时,使用的镜像如果在本地不存在,docker 就会自动从 docker 镜像仓库中下载,默认是从 Docker Hub 公共镜像源下载。
操作 | 命令 | 说明 |
---|---|---|
检索 | docker search 关键字 | 实际上是从https://hub.docker.com/检索。例:docker search redis |
拉取 | docker pull 镜像名:tag | tag表示标签,为可选项,默认为latest |
列表 | docker images | 查看所有本地镜像 |
删除 | docker rmi image-id | 删除指定的本地镜像 |
#1. 镜像检索
~]# docker search redis
INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED
docker.io docker.io/redis Redis is an open source key-value store th... 5999 [OK]
docker.io docker.io/bitnami/redis Bitnami Redis Docker Image 94 [OK]
···
NAME:镜像仓库源的名称
DESCRIPTION:镜像的描述
OFFICIAL:是否docker官方发布
AUTOMATED:是否自动构建
#2. 镜像拉取
~]# docker pull redis
Using default tag: latest
Trying to pull repository docker.io/library/redis ...
latest: Pulling from docker.io/library/redis
...
如果担心下载速度慢,可以到国内的网易镜像中心https://c.163yun.com/hub#/m/home/进行查找,拉取命令在镜像库中能看到。
#3. 镜像列表
~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/redis latest 1babb1dde7e1 2 weeks ago 94.9 MB
···
REPOSITORY:表示镜像的仓库源
TAG:镜像的标签(版本)
IMAGE ID:镜像ID
CREATED:镜像创建时间
SIZE:镜像大小
#4. 镜像删除
~]# docker rmi 1babb1dde7e1
Untagged: docker.io/redis:latest
Untagged: docker.io/redis@sha256:481678b4b5ea1cb4e8d38ed6677b2da9b9e057cf7e1b6c988ba96651c6f6eff3
Deleted: sha256:1babb1dde7e1fc7520ce56ce6d39843a074151bb192522b1988c65a067b15e96
Deleted: sha256:68f3c8e2388da48dd310e4642814feca68081445635716be58d7ebb69b611922
Deleted: sha256:b18dd54614f34239abc8a1165c90d5416a413d1f4c3c6711648e49e26e4445e7
Deleted: sha256:bf9efae34b1e94384b8cd011cf71591efab734b57961017bad608be56b7b1c9c
Deleted: sha256:7ae66985fd3a3a132fab51b4a43ed32fd14174179ad8c3041262670523a6104c
Deleted: sha256:bf45690ef12cc54743675646a8e0bafe0394706b7f9ed1c9b11423bb5494665b
Deleted: sha256:237472299760d6726d376385edd9e79c310fe91d794bc9870d038417d448c2d5
···
3. 容器生命周期管理及容器操作相关
当运行下载的软件镜像时,就会产生一个容器,此容器即代表一个正在运行的软件。
操作 | 命令 | 说明 |
---|---|---|
运行 | docker run -name container-name -d image-name | -name 定义容器名 -d 后台运行 -p 将主机端口映射到容器内部的端口 |
启动 | docker start container-name/container-id | 启动容器 |
停止 | docker stop container-name/container-id | 停止容器 |
重启 | docker restart container-name/container-id | 重启容器 |
杀容器 | docker kill container-id | 杀掉一个运行中的容器 |
删除 | docker rm container-id | 删除指定容器 |
暂停 | docker pause | 暂停容器中所有的进程。 |
恢复 | docker unpause | 恢复容器中所有的进程。 |
列表 | docker ps | 查看运行中的容器,加-e 可以查看所有的容器 |
执行命令 | docker exec | 在运行的容器中执行命令 |
容器日志 | docker logs container-name/container-id |
#1. 根据镜像运行容器
~]# docker run --name mytomcat -d tomcat:latest
#2. 查看运行中的容器
~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5ae1e2cf2862 tomcat:latest "catalina.sh run" 13 seconds ago Up 13 seconds 8080/tcp mytomcat
#3. 查看所有容器
~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5ae1e2cf2862 tomcat:latest "catalina.sh run" 28 seconds ago Up 28 seconds 8080/tcp mytomcat
#4. 启动容器, 停止运行中的容器
~]# docker start 5ae1e2cf2862
~]# docker stop 5ae1e2cf2862
#5. 删除容器
~]# docker rm 5ae1e2cf2862
#6. 根据镜像运行容器, 并将8080端口映射到主机端口
~]# docker run --name mytomcat -p 8888:8080 -d tomcat:latest
~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
57546c6c4ac4 tomcat "catalina.sh run" 7 seconds ago Up 5 seconds 0.0.0.0:8888->8080/tcp practical_meitner
#7. 查看容器日志,可通过名称或镜像id
~]# docker logs practical_meitner
03-Nov-2018 13:32:57.183 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version: Apache Tomcat/8.5.34
03-Nov-2018 13:32:57.185 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built: Sep 4 2018 22:28:22 UTC
···