帮助命令
docker version #docker的版本信息docker infodocker 命令 --help
镜像命令
docker images 查看所有本地的主机上的镜像
[root@lxt /]# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEhello-world latest d1165f221234 2 months ago 13.3kBREPOSITORY 镜像的仓库源TAG 镜像的标签IMAGE ID 镜像的idCREATED 镜像的创建时间SIZE 镜像的大小
docker search 搜索镜像
docker pull 下载镜像
指定版本:
docker pull mysql : 5.7
docker rmi 删除镜像
docker rmi -f 镜像iddocker rmi -f 镜像id 镜像iddocker rmi -f $(docker images -aq) #删除全部的容器
容器命令
说明:我们有了镜像才可以创建容器,linux, 下载一个centos镜像来测试学习
docker pull centos
新建容器并启动
docker run [可选参数] image# docker run -it centos /bin/bash#参数说明--name="Name" 容器名字 tomcat01 tomcat02 用来区分容器-d 后台方式运行-it 指定交互方式运行,进入容器查看内容-p 指定容器的端口 -p 8080:8080-p ip:主机端口:容器端口-p 主机端口:容器端口(常用)-p 容器端口容器端口-P 随机指定端口
[root@lxt /]# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEhello-world latest d1165f221234 2 months ago 13.3kBcentos latest 300e315adb2f 5 months ago 209MB[root@lxt /]# docker run -it centos /bin/bash[root@18a235d69338 /]# lsbin etc lib lost+found mnt proc run srv tmp vardev home lib64 media opt root sbin sys usr[root@18a235d69338 /]# exitexit[root@lxt /]# lsbin dev home lib64 mnt proc run srv tmp varboot etc lib media opt root sbin sys usr[root@lxt /]#
列出所有的运行的容器
docker ps 列出正在运行的容器
-a 列出正在运行的容器+带出历史运行过的容器
-n=? 显示最近的创建的容器
[root@lxt /]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES[root@lxt /]# docker ps -aCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES18a235d69338 centos "/bin/bash" 6 minutes ago Exited (0) About a minute ago funny_mclarenc00650e4c662 hello-world "/hello" 2 hours ago Exited (0) 2 hours ago laughing_hawking[root@lxt /]#
退出容器
exit 直接容器停止并退出Ctrl+ p +q 容器不停止退出
删除容器
docker rm 容器iddocker rm -f $(docker ps -aq) 删除所有
启动和停止容器的操作
docker start 容器iddocker restart 容器iddocker stop 容器iddocker kill 容器id
其他常用命令
后台启动容器
# docker run -d centos#问题docker ps,发现centos停止了#常见的坑: docker容器使用后台运行,就必须要有要一个前台进程,docker发现没有应用,就会自动停止# nginx,容器启动后,发现自己没有提供服务,就会立刻停止,就是没有程序了
查看日志
docker logs -tf --tail-tf 显示日志--tail number 要显示日志的条数
查看容器中进程信息 ps
docker top 容器id
查看镜像的元数据
docker inspect 容器id
进入当前正在运行的容器
# 方式1 进入容器后开启一个新的终端,可以在里面操作(常用)docker exec -it 容器id bashShell[root@lxt /]# docker exec -it 3d3c18c82fd5 /bin/bash# 方式2 进入容器正在执行的终端,不会启动新的进程docker attach 容器id
从容器内拷贝文件到主机上
docker cp 容器id:容器内路径 目的的主机路径
[root@lxt /]# docker exec -it 3d3c18c82fd5 /bin/bash[root@3d3c18c82fd5 /]# lsbin etc lib lost+found mnt proc run srv tmp vardev home lib64 media opt root sbin sys usr[root@3d3c18c82fd5 /]# cd /home[root@3d3c18c82fd5 home]# ls[root@3d3c18c82fd5 home]# touch test.java[root@3d3c18c82fd5 home]# lstest.java[root@3d3c18c82fd5 home]# exitexit[root@lxt /]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES3d3c18c82fd5 centos "/bin/bash" 5 minutes ago Up 5 minutes fervent_poitras[root@lxt /]# docker stop 3d3c18c82fd53d3c18c82fd5[root@lxt /]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES[root@lxt /]# docker cp 3d3c18c82fd5:/home/test.java /home[root@lxt /]# lsbin dev home lib64 mnt proc run srv tmp varboot etc lib media opt root sbin sys usr[root@lxt /]# cd /home[root@lxt home]# lshello lxt test.java[root@lxt home]#
小结



