笔记
Docker的常用命令
帮助命令
docker version 查看docker版本 docker info 显示docker的系统信息,包括镜像和容器的数量 docker 命令 --help 帮助命令
https://docs.docker.com/engine/reference/run/
镜像命令
docker images 查看所有本地主机上的镜像
[root@gg ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE hello-world latest bf756fb1ae65 13 months ago 13.3kB REPOSITORY 镜像的仓库员 TAG 镜像的标签 IMAGE ID 镜像的id CREATED 镜像的创建时间 SIZE 镜像的大小
可选项
搜索镜像
docker search mysql docker search 镜像名
下载镜像
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
删除镜像
docker rmi -f 镜像id docker rmi -f 镜像id 镜像id 镜像id docker rmi -f $(docker images -aq) 删除全部镜像
容器命令
说明:有了镜像才可以创建容器,linux,下载一个centos镜像来测试学习
docker pull centos
新建容器并启动
docker run [可选参数] image # 参数说明--name="name" 容器名字 tomcat1 tomcat2 用来区分容器-d 后台方式运行-it 使用交互方式运行,进入容器查看内容-p 指定容器的端口 -p 8080:8080 -p ip:主机端口:容器端口 -p 主机端口:容器端口(常用) -p 容器端口 容器端口-P 随机指定端口 # 测试 启动并进入容器 [root@gg ~]# docker run -it centos /bin/bash [root@506edd739cb2 /]# ls bin etc lib lost+found mnt proc run srv tmp var dev home lib64 media opt root sbin sys usr [root@506edd739cb2 /]# exit
列出所有运行中的容器
[root@gg ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES [root@gg ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 506edd739cb2 centos "/bin/bash" 2 minutes ago Exited (0) About a minute ago hopeful_fermat 078c6b3a0933 hello-world "/hello" 8 minutes ago Exited (0) 8 minutes ago dreamy_galileo f09e640c050b hello-world "/hello" 23 hours ago Exited (0) 23 hours ago cranky_gates
退出容器
exit 直接容器停止并退出 ctrl+Q+P 不停止退出
删除容器
docker rm 容器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 -d 镜像名 docker run -d centos
docker ps,发现centos停止了
常见的坑,docker容器使用后台运行,就必须要有一个前台进程,docker发现没有应用,就会自动停止
nginx,容器启动后,发现自己没有提供服务,就会立即执行,就是没有程序了
查看日志
docker logs -tf --tail 10 镜像id 自己编写一段shell脚本 docker run -d centos /bin/sh -c "while true;do echo gg;sleep 1;done"
查看容器中进程信息ps
docker top 容器id
查看镜像的元数据
docker inspect 容器id docker inspect b9fed77f450a
进入当前正在运行的容器
我们荣昌容器都是使用后台方式运行的,需要进入容器,修改一些配置 docker exec b9fed77f450a docker attach 容器id docker exec 进入容器后开启一个新的终端,可以在里面操作(常用) docker attach 进入容器正在执行的终端,不会启动新的进程
从容器内拷贝文件到主机上
docker cp 容器id:容器内路径 目的的主机路径
0ec15b6a19b7 centos "/bin/bash" 3 minutes ago Exited (0) About a minute ago quizzical_blackburn
[root@gg home]# docker cp 0ec15b6a19b7:/home/test.java /home