Docker常用命令

111 阅读3分钟

docker常用命令

输出实时日志

docker container logs 容器ID -f --tail 100

帮助命令

# 显示docker的版本信息
docker version
# 显示docker的系统信息 包括镜像和容器数量
docker info
# 查看docker命令的帮助文档
docker 命令 --help

镜像命令

# 查看主机上所有的镜像
docker images # 相当于 docker image ls
# 搜索镜像
docker search 镜像名称
# 下载镜像
docker pull 镜像名称[:版本]
# 删除镜像
docker rmi 镜像名称

docker images

[root@node-01 ~]# docker images
REPOSITORY                TAG       IMAGE ID       CREATED       SIZE
redis                     latest    08502081bff6   2 weeks ago   105MB
mysql                     5.7       09361feeb475   2 weeks ago   447MB
elasticsearch             7.13.2    11a830014f7c   4 weeks ago   1.02GB

# REPOSITORY 镜像仓库
# TAG 镜像标签
# IMAGE ID 镜像ID
# CREATED 创建时间
# SIZE 镜像大小

可选参数

# -a 列出所有镜像,也可以使用 --all
docker images -a
# -q 只显示镜像ID,也可以使用 --quiet
docker images -q
# 显示所有镜像的ID
docker images -aq

docker pull

# 下载镜像 docker pull 镜像名[:tag] 
➜ ~ docker pull tomcat:8 
8: Pulling from library/tomcat #如果不写tag,默认就是latest 
90fe46dd8199: Already exists #分层下载: docker image 的核心 联合文件系统
35a4f1977689: Already exists 
bbc37f14aded: Already exists 
74e27dc593d4: Already exists 
93a01fbfad7f: Already exists 
1478df405869: Pull complete 
64f0dd11682b: Pull complete 
68ff4e050d11: Pull complete 
f576086003cf: Pull complete 
3b72593ce10e: Pull complete 
Digest:sha256:0c6234e7ec9d10ab32c06423ab829b32e3183ba5bf2620ee66de866df640a027 # 签名 防伪 
Status: Downloaded newer image for tomcat:8 docker.io/library/tomcat:8 #真实地址

#等价于 docker pull tomcat:8 docker pull docker.io/library/tomcat:8

docker rim

# 删除指定的镜像,可以指定多个镜像ID
docker rim -f 镜像ID [镜像ID]
# 删除全部镜像
docker rmi -f $(docker images -aq)

容器命令

# 新建容器并启动
docker run 镜像ID
# 列出所有运行的容器
docker ps
# 删除指定容器
docker rm 容器ID
# 启动容器
docker start 容器ID
# 重启容器
docker restart 容器ID
# 停止运行的容器
docker stop 容器ID
# 强制停止运行中的容器
docker kill 容器ID

docker run

# 可选参数
--name="容器名字"	# 指定容器名字,用来区分容器
-d	# 以后台方式运行
-it # 使用交互方式运行,进入容器查看内容
-p	# 指定端口映射 -p 宿主机端口:容器端口
-P  # 随机指定端口

# 测试启动并进入容器
docker run -it centos /bin/bash

docker rm

# 删除指定容器,不能删除正在运行的,正在运行的需要强制删除 rm -rf
docker rm 容器ID
# 强制删除指定容器
docker rm -rf 容器ID
# 删除所有容器
docker rm $(docker ps -aq)

查看日志

# 查看n行日志
docker logs --tail n 容器ID
# 查看滚动日志
docker logs -f 容器ID

查看容器中进程信息

docker top 容器ID

查看容器元数据

docker inspect 容器ID

# 查看容器IP地址
docker inspect --format='{{.NetworkSettings.IPAddress}}' 容器名称|容器id

进入运行中的容器

docker exec -it 容器ID /bin/bash

# 进入容器其他方式
docker attach 容器ID # 不常用

# docker exec 进入当前容器后开启一个新的终端,可以在里面操作。(常用) 
# docker attach 进入容器正在执行的终端

从容器拷贝文件到宿主机

# 进入容器
docker exec -it 容器ID /bin/bash
# 拷贝文件
docker cp 容器ID:容器内文件路径 宿主机需要存放文件的路径

Centos启动docker容器

service docker start
或者
systemctl start docker

修改docker的下载源

# 编辑配置文件,不存在新建
sudo vim /etc/docker/dameon.json

# 增加源配置
{
  "registry-mirrors": ["https://reg-mirror.qiniu.com/"]
}
# 重启docker容器
sudo service docker restart

修改docker容器的dns让容器内能上网

# 编辑配置文件,不存在新建
sudo vim /etc/docker/dameon.json

# 增加dns配置
{
  "registry-mirrors": ["https://reg-mirror.qiniu.com/"],
  "dns":["114.114.114.114","8.8.8.8"]
}
# 重启docker容器
sudo service docker restart

docker启动es

# -e 表示环境配置修改
docker run -d --name es -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.13.2