docker命令

docker 帮助命令
docker version // 版本信息
docker info // 比较详细的信息
docker 命令 --help // 帮助命令


docker 镜像命令

docker images -q // 只显示id
docker search mysql // 搜索镜像
docker pull mysql // 下载镜像,默认使用最新版本
docker pull mysql:5.7 // 指定版本号
docker rmi -f ID // rmi,i是镜像的意思,删除指定id的镜像
docker rmi -f ID, ID, ID // 删除多个镜像
docker rmi -f $(docker images -aq)// 删除所有镜像


docker 容器命令

docker pull centos // 下载centos镜像
docker run [可选参数] image // 新建容器并启动
参数说明:--name 容器名字,如:tomcat1,tomcat2
     -p 随机指定端口
     -P    1、ip:主机端口:容器端口
          2、主机端口:容器端口(常用)
          3、容器端口
          4、不写-P,后面直接加容器端口
     -d 后台运行;与-it方式对应
     -it 使用交互方式运行,可以进入容器查看内容;与-d方式对应
测试:
docker run -it centos /bin/bash
进入容器后 ls,发现这是一个新的linux,这个linux里很多命令是不完善的
bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var
docker ps // 当前正在运行的容器
docker ps -a // 当前正在运行的容器+以前运行过的容器
docker ps -q // 只显示正在运行的容器的id
docker ps -n=1 // 最近创建的一个容器
exit // 停止容器并退出
ctrl + P + Q // 不停止容器退出
docker rm 容器ID // 删除指定容器
docker rm -f 容器ID // 不能删除正在运行的容器,强制删除
docker rm -f $(docker ps -aq) // 删除所有容器
docker run -d centos:7 // 后台启动容器
问题:docker ps,发现centos停止了。docker容器后台运行,必须有一个前台进程,因为容器发现自己并没有提供任何服务,所以就自动退出了(nginx会有这种情况),除非容器运行的命令是一直挂起的命令。

docker run -d centos /bin/sh -c "while true; do echo hello cengjingzuimei; sleep 2; done"  // 脚本写了一个死循环,两秒输出一次hello cengjingzuimei,因为有一直挂起的命令,所以不会自动退出。

docker start 容器ID // 启动容器
docker stop 容器ID // 停止运行的容器
docker restart 容器ID // 重启容器
docker kill 容器ID // 强制停止容器


日志命令

docker logs -f -t --tail 10 容器ID // -f 跟踪实时日志   -t 显示时间戳   tail 显示结尾多少行


查看元数据、进程命令

docker top 容器ID // 查看容器中的进程

docker inspect 容器ID // 查看镜像的元数据

进入正在运行的容器

docker exec -it 容器ID /bin/bash // 进入容器后,打开一个终端(即命令行),可以执行一些操作
docker exec -it 容器ID ip addr  // 进入容器执行 ip addr 命令,然后立即退出容器,回到宿主机
docker attach 容器ID // 进入容器后,显示容器正在运行的代码

从容器内复制文件到主机
docker cp 容器ID:容器内路径 主机路径