1.基础命令

  1. docker version #查看docker版本信息
  2. docker info #查看docker的系统信息,包括镜像和容器的数量
  3. docker 命令 --help #帮助命令(可查看可选的参数)
  4. docker COMMAND --help

2.镜像命令

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

  1. docker images
  2. REPOSITORY TAG IMAGE ID CREATED SIZE
  3. nginx latest 605c77e624dd 3 months ago 141MB
  4. tomcat latest fb5657adc892 4 months ago 680MB
  5. centos latest 5d0da3dc9764 7 months ago 231MB
  6. #解释
  7. 1.REPOSITORY 镜像的仓库源
  8. 2.TAG 镜像的标签
  9. 3.IMAGE ID 镜像的ID
  10. 4.CREATED 镜像的创建时间
  11. 5.SIZE 镜像的大小
  12. #可选参数
  13. -a/--all 列出所有镜像
  14. -q/--quiet 只显示镜像ID

2.2docker search 搜索镜像

  1. docker search mysql
  2. NAME DESCRIPTION STARS OFFICIAL AUTOMATED
  3. mysql MySQL is a widely used, open-source relation 12451 [OK]
  4. mariadb MariaDB Server is a high performing open sou 4797 [OK]
  5. mysql/mysql-server Optimized MySQL Server Docker images. Create 920 [OK]
  6. percona Percona Server is a fork of the MySQL relati 575 [OK]
  7. phpmyadmin phpMyAdmin - A web interface for MySQL and M 510 [OK]
  8. centos/mysql-57-centos7 MySQL 5.7 SQL database server 93
  9. #可选参数
  10. search the Docker hub for images
  11. Options:
  12. -f, --filter filter Filter output based on conditions provided
  13. 根据提供的条件过滤输出
  14. --format string Pretty-print search using a Go template
  15. 使用 Go 模板进行漂亮打印搜索
  16. --limit int Max number of search results (default 25)
  17. 最大搜索结果数(默认 25
  18. --no-trunc Don't truncate output
  19. 不截断输出
  20. #搜索收藏数大于3000的镜像
  21. docker search mysql --filter=STARS=3000
  22. NAME DESCRIPTION STARS OFFICIAL AUTOMATED
  23. mysql MySQL is a widely used, open-source relation… 12451 [OK]
  24. mariadb MariaDB Server is a high performing open sou… 4797 [OK]

2.3docker pull 镜像名[:tag] 下载镜像

  1. docker pull mysql
  2. Using default tag: latest #如果不写tag默认就是latest
  3. latest: Pulling from library/mysql
  4. 6ec7b7d162b2: Pull complete #分层下载,docker image的核心-联合文件系统
  5. fedd960d3481: Pull complete
  6. 7ab947313861: Pull complete
  7. 64f92f19e638: Pull complete
  8. 3e80b17bff96: Pull complete
  9. 014e976799f9: Pull complete
  10. 59ae84fee1b3: Pull complete
  11. ffe10de703ea: Pull complete
  12. 657af6d90c83: Pull complete
  13. 98bfb480322c: Pull complete
  14. 6aa3859c4789: Pull complete
  15. 1ed875d851ef: Pull complete
  16. Digest: sha256:78800e6d3f1b230e35275145e657b82c3fb02a27b2d8e76aac2f5e90c1c30873 #签名
  17. Status: Downloaded newer image for mysql:latest
  18. docker.io/library/mysql:latest #下载来源的真实地址
  19. #docker pull mysql
  20. 等价于
  21. docker pull docker.io/library/mysql:latest
  22. #指定版本下载
  23. docker pull mysql:5.7

2.4docker rmi 删除镜像

  1. docker rmi -f 镜像id #1.删除指定的镜像id
  2. docker rmi -f 镜像id 镜像id 镜像id #2.删除多个镜像
  3. docker rmi -f $(docker images -aq) #3.删除全部镜像

3.容器命令

3.1运行容器的命令说明:

  1. 运行容器的命令说明:
  2. docker run [可选参数] image
  3. #参数说明
  4. --name="名字" 指定容器名字
  5. -d 后台方式运行
  6. -it 使用交互方式运行,进入容器查看内容
  7. -p 指定容器的端口
  8. (
  9. -p ip:主机端口:容器端口 配置主机端口映射到容器端口
  10. -p 主机端口:容器端口
  11. -p 容器端口
  12. )
  13. -P 随机指定端口(大写的P)

3.2运行并进入容器centos

  1. docker run -it centos /bin/bash
  2. ls
  3. bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var

3.3退出容器命令

exit 停止并退出容器(后台方式运行则仅退出)

Ctrl+P+Q 不停止容器退出

3.4列出运行过的容器命令

docker ps

列出当前正在运行的容器

-a # 列出所有容器的运行记录
-n=? # 显示最近创建的n个容器
-q # 只显示容器的编号

  1. docker ps
  2. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  3. docker ps -a
  4. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  5. bca129320bb5 centos "/bin/bash" 4 minutes ago Exited (0) 3 minutes ago optimistic_shtern
  6. bd1b8900c547 centos "/bin/bash" 6 minutes ago Exited (0) 5 minutes ago cool_tesla
  7. cf6adbf1b506 bf756fb1ae65 "/hello" 5 hours ago Exited (0) 5 hours ago optimistic_darwin

3.5删除容器命令

  1. docker rm 容器id #删除指定的容器,不能删除正在运行的容器,强制删除使用 rm -f
  2. docker rm -f $(docker ps -aq) #删除所有的容器
  3. docker ps -a -q|xargs docker rm #删除所有的容器

3.6启动和停止容器命令

  1. docker start 容器id #启动容器
  2. docker restart 容器id #重启容器
  3. docker stop 容器id #停止当前运行的容器
  4. docker kill 容器id #强制停止当前容器

4.其他常用命令

4.1日志的查看

  1. docker logs --help
  2. Usage: docker logs [OPTIONS] CONTAINER
  3. Fetch the logs of a container
  4. Options:
  5. --details Show extra details provided to logs
  6. -f, --follow Follow log output
  7. --since string Show logs since timestamp (e.g. 2013-01-02T13:23:37Z) or relative (e.g. 42m for 42 minutes)
  8. -n, --tail string Number of lines to show from the end of the logs (default "all")
  9. -t, --timestamps Show timestamps
  10. --until string Show logs before a timestamp (e.g. 2013-01-02T13:23:37Z) or relative (e.g. 42m for 42 minutes)
  11. 常用:
  12. docker logs -tf 容器id
  13. docker logs --tail number 容器id #num为要显示的日志条数

4.2查看容器中进程信息

  1. docker top c703b5b1911f
  2. UID PID PPID C STIME TTY TIME CMD
  3. root 11156 11135 0 11:31 ? 00:00:00 /bin/sh -c while true;do echo hi;sleep 5;done
  4. root 11886 11156 0 11:43 ? 00:00:00 /usr/bin/coreutils --coreutils-prog-shebang=sleep /usr/bin/sleep 5

4.3进入当前正在运行的容器

因为通常我们的容器都是使用后台方式来运行的,有时需要进入容器修改配置

方式一

  1. docker exec -it c703b5b1911f /bin/bash

方式二

  1. docker attach c703b5b1911f

docker exec 进入容器后开启一个新的终端,可以在里面操作

docker attach 进入容器正在执行的终端,不会启动新的进程

4.4拷贝操作

拷贝操作的命令如下:

拷贝容器的文件到主机中

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

拷贝宿主机的文件到容器中

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