Docker 常用命令

一、常用命令

基本命令

docker version
docker info
docker --help

官方文档:https://docs.docker.com/reference/

镜像命令

查看镜像:

// 查看所有的镜像
docker images

// 可选参数
Options:
  -a, --all             Show all images (default hides intermediate images)
      --digests         Show digests
  -f, --filter filter   Filter output based on conditions provided
      --format string   Pretty-print images using a Go template
      --no-trunc        Don't truncate output
  -q, --quiet           Only show numeric IDs
[root@wsuo ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
hello-world         latest              bf756fb1ae65        4 months ago        13.3kB
  • REPOSITORY:镜像的仓库源;
  • TAG:镜像的标签;
  • IMAGE ID:镜像的 ID;
  • CREATED:镜像的创建时间;
  • SIZE:镜像的大小。

比较常用的是显示全部镜像但是只显示 ID:

[root@wsuo ~]# docker images -aq
bf756fb1ae65

搜索镜像:

docker search

可选参数:
Options:
  -f, --filter filter   Filter output based on conditions provided
      --format string   Pretty-print search using a Go template
      --limit int       Max number of search results (default 25)
      --no-trunc        Don't truncate output
搜索大于 3000 star 的镜像:
docker search mysql --filter=stars=3000

拉取镜像:

docker pull
下载 mysql:
docker pull mysql

后面可以加上版本信息,如果不写版本则默认是最新版。

docker pull mysql:5.7 	# 下载5.7版本的mysql

下载一个 centOS 镜像来测试:

[root@wsuo ~]# docker pull centos
Using default tag: latest 															# 默认标签
latest: Pulling from library/centos													# 仓库位置
8a29a15cefae: Pull complete 
Digest: sha256:fe8d824220415eed5477b63addf40fb06c3b049404242b31982106ac204f6700 	# 镜像的 ID 号
Status: Downloaded newer image for centos:latest
docker.io/library/centos:latest

删除镜像:

docker rmi

# 指定 ID:
docker rmi -f ID值

# 删除所有镜像
docker rmi -f $(docker images -aq)

容器命令

有了镜像才可以创建容器:

docker pull centos

创建容器并启动:

docker run [可选参数] image

--name: 		容器名字 tomcat1, tomcat2 用来区分容器

-d				后台方式运行

-it				使用交互方式运行,进入容器查看内容

-p				指定端口 -p 8080
	-p: 主机端口:容器端口		映射
	-p:	容器端口
	
-P				随机指定端口

执行:

[root@wsuo ~]# docker run -it centos /bin/bash
[root@e25d08956b4a /]# 

这其实就是一个套娃,我们目前使用的是容器,但是它不太完善。

从容器中退出到主机:

exit		# 直接停止并退出
Ctrl+P+Q	# 容器不停止退出

列出所有运行中的容器:

docker ps			# 列出正在运行的容器
docker ps -a  		# 列出历史运行的容器
docker ps -a -n=2	# 显示最近运行的俩个容器
docker ps -q		# 显示编号
[root@wsuo ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
[root@wsuo ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES
e25d08956b4a        centos              "/bin/bash"         2 minutes ago       Exited (0) 29 seconds ago                       inspiring_khayyam
291fe9863e6a        hello-world         "/hello"            45 hours ago        Exited (0) 45 hours ago                         peaceful_fermi

删除容器:

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

启动和停止容器的操作:

dokcer start	容器 ID   	# 启动容器
docker restart	 容器 ID		# 重启容器
docker stop		容器 ID		# 停止容器

其他命令

后台启动容器

docker run -d 镜像名

查看日志命令

docker logs -tf --tail 10 容器ID   		# f 是 format 带上时间戳, 10 是显示10条日志信息

查看容器中的进程信息

docker top 容器ID

进入当前正在运行的容器

进入正在运行的容器,并开启一个新的终端:

docker exec -it 容器 ID bashshell

进入正在运行的命令行,而不是开启一个新的终端:

docker attach 容器 ID bashshell

从容器内拷贝文件到主机上

docker cp 容器ID:/home/demo.java /home 

二、练习

1、部署 Nginx

首先在 https://hub.docker.com/ 搜索 nginx。

然后 docker pull nginx

docker run -d --name nginx01 -p 3344:80 nginx

# p 表示端口映射,即访问主机的 3344 端口相当于访问 nginx 的 80 端口。
# d 表示后台启动
# name 给容器命名

测试:

curl localhost:3344

返回结果:

# 进入容器修改配置文件
docker exec -it nginx01 /bin/bash

whereis nginx

cd /etc/nginx;ls

就可以修改 nginx.conf 文件了.

2、部署 Tomcat

下载镜像:

docker pull tomcat:9.0

后台启动并映射端口:

docker run -d -p 2000:8080 --name tomcat01 tomcat:9.0

访问之后:

这说明 Tomcat 是不完整的,没有默认访问路径。

因为我们拉取的默认是最小的镜像,将没有必要的都剔除了。

3、部署 ES+Kibana

  • ES 十分的耗内存;
  • ES 暴露的端口比较多;
  • ES 的数据需要挂载到安全目录。
docker run -d --name elasticsearch -p 2001:9200 -p 2002:9300 -e "discovery.type=single-node" elasticsearch:7.6.2

这里没有先 pull,因为如果本地没有该镜像,他会自动去下载并运行。

直接访问 2001 端口:

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 解决 IDEA 中文乱码的问题

    wsuo
  • Spring 注解开发之 @Bean 及其相关注解

    这次介绍一下 Spring 中的几个注解 @Bean 以及 @Scope 和 @Lazy。

    wsuo
  • Ubuntu19.10 中安装 JDK

    然后就是上传到服务器上面去,如果你用的是虚拟机就更方便了,如果不是请使用工具传输,这里推荐使用远程连接工具,也就是 Xftp6 。

    wsuo
  • Docker常用命令详解

    PayneWu
  • 【趣学程序】Docker之Docker的常用命令

    同一仓库源可以有多个 TAG,代表这个仓库源的不同个版本,我们使用 REPOSITORY:TAG 来定义不同的镜像。如果你不指定一个镜像的版本标签,例如你只使用...

    趣学程序-shaofeer
  • Docker常用命令

    什么是Docker? Docker就是一个容器,但是这个容器里什么都没有,所以我们根据需求不同就要不同的环境,这些环境就是镜像,我们可以用一个镜像生成多个容器,...

    剑行者
  • docker容器常用命令

    优点:制作方便,只要进入容器,安装好环境,就可以制作一个新的镜像,并部署到其他环境。

    星星在线
  • docker初探 解决一切服务器环境问题

    docker很早就有了,网站事也是久仰大名。最近尝试了一下,发现出乎意料的好用!所以总结一下入门必备,给同样折腾docker的小白一点启示。

    砸漏
  • Docker:镜像操作和容器操作

    镜像操作 列出镜像: $ sudo docker images REPOSITORY TAG IMAGE ID...

    古时的风筝
  • \bdocker容器极简教程

    一,小王对于容器的困惑 小王刚开始学习Docker的时候,找资料在网上看到最多的是Docker的好处。比如: 1、Docker 容器的启动可以在秒级实现,这相比...

    架构师小秘圈

扫码关注云+社区

领取腾讯云代金券