Docker学习笔记-Docker的常用命令

一.帮助命令
docker version # 显示 docker 的版本信息。
docker info # 显示 docker 的系统信息,包括镜像和容器的数量
docker 命令 --help # 帮助命令
 
# 帮助文档的地址: https://docs.docker.com/engine/reference/commandline/build/

二.镜像命令

docker images # 查看所有本地主机上的镜像 可以使用 docker image ls 代替
 

解释一下:

#REPOSITORY    # 镜像的仓库源
#TAG                    # 镜像的标签   latest表示最新的版本
#IMAGE ID           # 镜像的 id
#CREATED          # 镜像的创建时间

#SIZE                   # 镜像的大小

# 可选项 Options:
-a , --all Show all images (default hides intermediate images)     # 列出所有镜像
-q , --quiet Only show numeric IDs                                               # 只显示镜像的 id
-aq #显示所有镜像的 id
 
docker search 搜索镜像  

 

docker pull 下载镜像 docker pull imageName : version【版本,如果不写版本就下载最新的】

比如下载mysql 镜像【很快就下载玩了

介绍一下:

Digest:签名【防伪】

docker.io/library/mysql:8.0.20:  真实地址

# 分层下载: docker image 的核心 联合文件系统  【当我们再去下载  mysql 5.0.8 时会提醒有些东西已经下载过了(共用的部分)】
docker rmi 删除镜像 docker image rm
  • docker rmi -f 镜像id #删除指定的镜像
  • docker rmi -f 镜像id 镜像id 镜像id 镜像id#删除指定的镜像
  • docker rmi -f $(docker images -aq) #删除全部的镜像 【shell 脚本的知识,可以看我shell的章节

三.容器命令【常用的】

docker run 镜像 id             # 新建容器并启动
docker ps                           # 列出所有运行的容器 docker container list
docker rm        容器 id          # 删除指定容器
docker start      容器 id          # 启动容器
docker restart   容器 id          # 重启容器
docker stop      容器 id          # 停止当前正在运行的容器
docker kill         容器 id          # 强制停止当前容器

所有的命令 docker container

新建容器并启动

docker run [可选参数]  image | docker  container run [可选参数] image

#参数说明

--name="Name"     容易名字 redis-slave1, redis-slave2用来区分容器的

-d 后台运行【守护进程】

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

-p 指定容器的端口  -p 8080(宿主机) :8080(容器)

                    -p ip : 主机端口 :容器端口

                    -p 主机端口 : 容器端口

                    -p  容器端口

                     容器端口

-P(大写)     随机指定端口

#测试:【版本号要带上哈,没版本号,它找不到 新的会去 docker hub 下载之后在运行的】

exit 从容器退出主机,并关闭容器

docker ps 查看正在运行的容器【我们已经关闭了,所以没得】

#docker ps 命令 # 列出当前正在运行的容器
  • -a, --all                           Show all containers (default shows just running)
  • -n, --last 数量                 Show n last created containers (includes all states) // 显示 前面 n 个容器(default -1)
  • -q, --quiet                       Only display numeric IDs

退出容器

  • exit     #容器直接退出,并关闭容器
  • Ctrl +P +Q # 【按键啊 别打字符哦】退出 但不关闭容器    【进入容器 docker attach 容器id】
删除容器
  • docker rm 容器id #删除指定的容器,不能删除正在运行的容器,如果要强制删除 rm -rf
  • docker rm -f $(docker ps -aq) #删除指定的容器
  • docker ps -a -q|xargs docker rm #删除所有的容器

启动和停止容器的操作
docker start 容器 id         # 启动容器
docker restart 容器 id      # 重启容器
docker stop 容器 id         # 停止当前正在运行的容器
docker kill 容器 id            # 强制停止当前容器

四.其他常用命令

# 命令 docker run -d 镜像名【虽然启动了但是没有干事情,守护进程的功能我们在前面介绍过:周期的执行某种事情
~ docker run -d  ubuntu:18.04
253852f3b9f08ad0a748cca66552b7c76583ed710b43c4c64af8c8983535d80d
~ docker ps
CONTAINER ID IMAGE COMMAND CREATED
STATUS PORTS NAMES
# 问题 docker ps. 发现ubuntu:18.04 停止了
# 常见的坑, docker 容器使用后台运行,就必须要有要一个前台进程, docker发现没有应用,就会自动停止
查看日志
docker logs --help
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)
 

启动命令后面那一坨 看不懂的 去看看我的shell 编程章节的 循环 https://blog.csdn.net/qq_44065088/article/details/106822774

# 模 拟日志
# 显示日志
-tf # 显示日志信息(一直更新)
--tail number # 需要显示日志条数
docker logs -t --tail n 容器 id # 查看 n 行日志
docker logs -ft 容器 id # 跟着日志

查看容器中进程信息 ps

docker top 容器id

查看镜像的元数据
docker inspect 容器 id
 
~ docker inspect 55321bcae33d
[
{
"Id":
"55321bcae33d15da8280bcac1d2bc1141d213bcc8f8e792edfd832ff61ae5066",
"Created": "2020-05-15T05:22:05.515909071Z",
"Path": "/bin/sh",
...
}
]
~
 
进入当前正在运行的容器
~ docker ps
CONTAINER ID IMAGE COMMAND CREATED
STATUS PORTS NAMES
55321bcae33d centos "/bin/sh -c 'while t…" 10 minutes ago
Up 10 minutes bold_bell
a7215824a4db centos "/bin/sh -c 'while t…" 13 minutes ago
Up 13 minutes zen_kepler
55a31b3f8613 centos "/bin/bash" 15 minutes ago
Up 15 minutes lucid_clarke
~ docker exec -it 55321bcae33d /bin/bash
[root@55321bcae33d /] #
 
 
方式二: docker attach 容器id
 
从容器内拷贝到主机上
docker cp 容器id:容器内路径 主机目的路径

bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var

  • root@9bfe8760e529:/# cd home/
  • root@9bfe8760e529:/home# ls
  • root@9bfe8760e529:/home# touch demo.cpp
  • root@9bfe8760e529:/home# ls
  • demo.cpp
  • root@9bfe8760e529:/home# echo hello world >> demo.cpp
  • root@9bfe8760e529:/home# cat demo.cpp
  • hello world
  • root@9bfe8760e529:/home# exit

C:\Users\AIERXUAN>docker cp 9bfe8760e529:/home/demo.cpp  G:\dockerInfo

五.小结

学到这里,恭喜你入门了

猜你喜欢

转载自blog.csdn.net/qq_44065088/article/details/109242837