帮助命令

  1. docker version #docker的版本信息
  2. docker info
  3. docker 命令 --help

镜像命令

docker images 查看所有本地的主机上的镜像

  1. [root@lxt /]# docker images
  2. REPOSITORY TAG IMAGE ID CREATED SIZE
  3. hello-world latest d1165f221234 2 months ago 13.3kB
  4. REPOSITORY 镜像的仓库源
  5. TAG 镜像的标签
  6. IMAGE ID 镜像的id
  7. CREATED 镜像的创建时间
  8. SIZE 镜像的大小

docker search 搜索镜像

docker pull 下载镜像
指定版本:

  1. docker pull mysql : 5.7

docker rmi 删除镜像

  1. docker rmi -f 镜像id
  2. docker rmi -f 镜像id 镜像id
  3. docker rmi -f $(docker images -aq) #删除全部的容器

容器命令

说明:我们有了镜像才可以创建容器,linux, 下载一个centos镜像来测试学习

  1. docker pull centos

新建容器并启动

  1. docker run [可选参数] image
  2. # docker run -it centos /bin/bash
  3. #参数说明
  4. --name="Name" 容器名字 tomcat01 tomcat02 用来区分容器
  5. -d 后台方式运行
  6. -it 指定交互方式运行,进入容器查看内容
  7. -p 指定容器的端口 -p 8080:8080
  8. -p ip:主机端口:容器端口
  9. -p 主机端口:容器端口(常用)
  10. -p 容器端口
  11. 容器端口
  12. -P 随机指定端口
  1. [root@lxt /]# docker images
  2. REPOSITORY TAG IMAGE ID CREATED SIZE
  3. hello-world latest d1165f221234 2 months ago 13.3kB
  4. centos latest 300e315adb2f 5 months ago 209MB
  5. [root@lxt /]# docker run -it centos /bin/bash
  6. [root@18a235d69338 /]# ls
  7. bin etc lib lost+found mnt proc run srv tmp var
  8. dev home lib64 media opt root sbin sys usr
  9. [root@18a235d69338 /]# exit
  10. exit
  11. [root@lxt /]# ls
  12. bin dev home lib64 mnt proc run srv tmp var
  13. boot etc lib media opt root sbin sys usr
  14. [root@lxt /]#

列出所有的运行的容器

docker ps 列出正在运行的容器
-a 列出正在运行的容器+带出历史运行过的容器
-n=? 显示最近的创建的容器

  1. [root@lxt /]# docker ps
  2. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  3. [root@lxt /]# docker ps -a
  4. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  5. 18a235d69338 centos "/bin/bash" 6 minutes ago Exited (0) About a minute ago funny_mclaren
  6. c00650e4c662 hello-world "/hello" 2 hours ago Exited (0) 2 hours ago laughing_hawking
  7. [root@lxt /]#

退出容器

  1. exit 直接容器停止并退出
  2. Ctrl+ p +q 容器不停止退出

删除容器

  1. docker rm 容器id
  2. docker rm -f $(docker ps -aq) 删除所有

启动和停止容器的操作

  1. docker start 容器id
  2. docker restart 容器id
  3. docker stop 容器id
  4. docker kill 容器id

其他常用命令

后台启动容器

  1. # docker run -d centos
  2. #问题docker ps,发现centos停止了
  3. #常见的坑: docker容器使用后台运行,就必须要有要一个前台进程,docker发现没有应用,就会自动停止
  4. # nginx,容器启动后,发现自己没有提供服务,就会立刻停止,就是没有程序了

查看日志

  1. docker logs -tf --tail
  2. -tf 显示日志
  3. --tail number 要显示日志的条数

查看容器中进程信息 ps

  1. docker top 容器id

查看镜像的元数据

  1. docker inspect 容器id

进入当前正在运行的容器

  1. # 方式1 进入容器后开启一个新的终端,可以在里面操作(常用)
  2. docker exec -it 容器id bashShell
  3. [root@lxt /]# docker exec -it 3d3c18c82fd5 /bin/bash
  4. # 方式2 进入容器正在执行的终端,不会启动新的进程
  5. docker attach 容器id

第一种进入的方式,使用exit退出容器不会直接关闭容器。

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

docker cp 容器id:容器内路径 目的的主机路径

  1. [root@lxt /]# docker exec -it 3d3c18c82fd5 /bin/bash
  2. [root@3d3c18c82fd5 /]# ls
  3. bin etc lib lost+found mnt proc run srv tmp var
  4. dev home lib64 media opt root sbin sys usr
  5. [root@3d3c18c82fd5 /]# cd /home
  6. [root@3d3c18c82fd5 home]# ls
  7. [root@3d3c18c82fd5 home]# touch test.java
  8. [root@3d3c18c82fd5 home]# ls
  9. test.java
  10. [root@3d3c18c82fd5 home]# exit
  11. exit
  12. [root@lxt /]# docker ps
  13. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  14. 3d3c18c82fd5 centos "/bin/bash" 5 minutes ago Up 5 minutes fervent_poitras
  15. [root@lxt /]# docker stop 3d3c18c82fd5
  16. 3d3c18c82fd5
  17. [root@lxt /]# docker ps
  18. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  19. [root@lxt /]# docker cp 3d3c18c82fd5:/home/test.java /home
  20. [root@lxt /]# ls
  21. bin dev home lib64 mnt proc run srv tmp var
  22. boot etc lib media opt root sbin sys usr
  23. [root@lxt /]# cd /home
  24. [root@lxt home]# ls
  25. hello lxt test.java
  26. [root@lxt home]#

小结

image.png
image.png
image.png