Docker常用命令

官方文档

启动docker进程

1
systemctl start docker

搜索可用镜像

1
2
3
4
5
6
7
docker search xx

NAME # 镜像仓库
DESCRIPTION # 镜像描述信息
STARS # 镜像收藏数
OFFICIAL # 是否为docker官方发布的镜像
AUTOMATED # 是否为自动化构建的镜像,关于自动化构建,可以查看官方文档:https://docs.docker.com/docker-hub/builds/#how-automated-builds-work

拉去镜像

1
docker pull [OPTIONS] NAME[:TAG|@DIGEST]

列出本地全部镜像

1
docker images

查看镜像的详情

1
2
docker inspect [OPTIONS] NAME|ID [NAME|ID...]
docker image inspect nginx:latest | grep -i version

删除镜像

1
docker rmi [OPTIONS] IMAGE [IMAGE...]

基于镜像创建并启动容器

1
2
3
4
5
6
7
8
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
-d, --detach Run container in background and print container ID
-t, --tty Allocate a pseudo-TTY
-p, --publish list Publish a container's port(s) to the host
-P, --publish-all Publish all exposed ports to random ports

#基于镜像启动容器实例
docker run -t -i IMAGE /bin/bash

删除容器

1
docker rm [OPTIONS] CONTAINER [CONTAINER...]

启动容器

1
docker start [OPTIONS] CONTAINER [CONTAINER...]

查看启动容器日志

1
2
3
4
5
6
7
8
9
Usage:  docker logs [OPTIONS] CONTAINER
Fetch the logs of a container
Options:
--details Show extra details provided to logs
-f, --follow Follow log output
--since string Show logs since timestamp (e.g. 2013-01-02T13:23:37) or relative (e.g. 42m for 42 minutes)
--tail string Number of lines to show from the end of the logs (default "all")
-t, --timestamps Show timestamps
--until string Show logs before a timestamp (e.g. 2013-01-02T13:23:37) or relative (e.g. 42m for 42 minutes)
1
2
3
4
5
6
# 查看容器近30分钟日志
docker logs --since 30m CONTAINER_ID
# 查看某时间之后的日志
docker logs -t --since="2019-08-02T13:23:37" CONTAINER_ID
# 查看某时间段日志:
docker logs -t --since="2019-08-02T13:23:37" --until "2019-08-03T12:23:37" CONTAINER_ID

查看启动的实例

1
2
docker ps [OPTIONS]
-a, --all Show all containers (default shows just running)

修改容器端口映射

1
2
3
4
# 直接修改配置文件
/var/lib/docker/containers/[CONTAINER ID]/config.v2.json
# 容器3306端口映射到外部3310端口
docker run -dit --privileged -p 3310:3306 --name=CONTAINNAME IMAGE /usr/sbin/init

进入容器

1
2
docker exec -it [CONTAINER ID] bash
docker exec -it [CONTAINER ID] /bin/sh

导入导出容器

1
2
docker export [imagename] > [url]
docker import [url] > [imagename]

拷贝

1
2
docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH
docker cp [OPTIONS] SRC_PATH CONTAINER:DEST_PATH

基于容器创建镜像

1
docker commit containid imagename

挂载目录

1
docker run -v <host>:<container>:[rw|ro]

历史记录

1
2
3
4
5
6
7
docker run -di \
--name=tomcat8081 \
-p 8081:8080 \
-v /opt/tomcat.docker/tomcat8081/logs:/usr/local/tomcat/logs \
-v /opt/tomcat.docker/tomcat8081/conf:/usr/local/tomcat/conf \
-v /opt/tomcat.docker/tomcat8081/webapps:/usr/local/tomcat/webapps \
tomcat:8.5-jdk8