官方命令地址 https://docs.docker.com/engine/reference/commandline/docker/
帮助命令
docker version #显示版本信息
docker info #显示docker系统信息,包括容器、镜像
docker stats #cpu/内存使用情况
docker 命令 --help #帮助命令
镜像命令
docker images 查看所有镜像
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos 7 8652b9f0cb4c 2 months ago 204MB
#解释
REPOSITORY 镜像仓库源
TAG 标签(版本)
IMAGE ID 镜像ID
CREATED 创建时间
SIZE 大小
#可选项
-a 列出所有镜像
-q 列出指定ID的镜像
docker search 搜索镜像
[root@localhost ~]# docker search centos
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
centos The official build of CentOS. 6370 [OK]
ansible/centos7-ansible Ansible on Centos7 132 [OK]
consol/centos-xfce-vnc Centos container with "headless" VNC session… 125 [OK]
jdeathe/centos-ssh OpenSSH / Supervisor / EPEL/IUS/SCL Repos - … 117 [OK]
centos/systemd systemd enabled base container. 92 [OK]
centos/mysql-57-centos7 MySQL 5.7 SQL database server 87
imagine10255/centos6-lnmp-php56 centos6-lnmp-php56 58 [OK]
tutum/centos Simple CentOS docker image with SSH access 46
centos/postgresql-96-centos7 PostgreSQL is an advanced Object-Relational … 45
kinogmt/centos-ssh CentOS with SSH 29 [OK]
pivotaldata/centos-gpdb-dev CentOS image for GPDB development. Tag names… 13
#过滤可选项,其他字段类似
docker search centos --filter=STARS=100 搜索STARS>100的镜像
docker search --no-trunc centos 显示完整描述信息
docker pull 下载镜像
下载指定版本,不写默认latest最新版本
docker pull 镜像:tag
docker pull mysql
等价于 docker pull docker.io/library/mysql:latest
docker rmi 删除镜像
docker rmi -f 镜像ID 删除指定镜像
docker rmi -f 镜像ID 镜像ID 镜像ID 删除多个镜像
docker rmi -f ${docker images -aq} 删除全部镜像
容器命令
先下载容器镜像
docker pull centos
新建并启动容器
docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG...]
#参数说明 https://docs.docker.com/engine/reference/run/
--name:[NAME] 容器名字,运行多个相同容器标识
-d 后台运行、如果容器内没有任何服务会直接停止
-it 交互模式运行
-p 指定容器端口
-p ip:主机端口:容器端口
-p 主机端口:容器端口
-p 容器端口
-P 随机端口
#启动并进入容器
docker run -it centos /bin/bash
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
redis latest 621ceef7494a 7 days ago 104MB
centos latest 300e315adb2f 6 weeks ago 209MB
centos 7 8652b9f0cb4c 2 months ago 204MB
[root@localhost ~]# docker run -it centos:7 /bin/bash
[root@e112ac6bace5 /]# ls
anaconda-post.log bin dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
//从容器中直接退出
[root@e112ac6bace5 /]# exit
exit
[root@localhost ~]# ls
3000 anaconda-ks.cfg
查看运行容器
docker ps 查看正在运行容器
-a 查看最近运行的容器
-n=? 显示最近创建的容器
-q 显示最近运行的容器编号
[root@localhost ~]# docker ps -aq
e112ac6bace5
64600af34f25
d8ccb540ccf8
退出容器
exit 直接退出
ctrl + P + Q 后台退出
删除容器
docker rm 容器id //删除未运行容器
docker rm -f 容器id //删除运行中容器
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 与 docker start区别
docker run 只在第一次运行时使用,将镜像放到容器中,以后再次启动这个容器时,只需要使用命令docker start 即可;
docker run相当于执行了两步操作:将镜像放入容器中(docker create),然后将容器启动,使之变成运行时容器(docker start);
docker start的作用是,重新启动已存在的镜像。
推荐学习视频
https://www.kuangstudy.com/course/detail/1323450683492208641