Docker基础常用命令
Docker帮助命令
docker version # 查看版本
docker info # 显示docker系统信息,包括镜像和容器信息
docker 命令 --help # 帮助命令
镜像命令
# 查看
docker images # 查看所有镜像
docker images -aq # 查看所有镜像id
# 搜索
docker search [镜像] # 搜索镜像
docker search mysql # 搜索mysql镜像
# 下载
docker pull [镜像:tag] # 下载镜像
docker pull mysql:5.7 # 下载mysql5.7镜像
# 删除
docker rmi -f [镜像名称或镜像id] # 删除指定镜像 建议使用id删除
docker rmi -f $(docker images -ap) #递归删除所有的镜像
容器命令
说明:有了镜像才能创建容器
测试:下载centos镜像进行测试
docker pull centos
- 新建容器并启动
docker run -it [image]
docker run [参数] [image]
参数说明:
--name="Name" 容器名字 tomcat7,用来区分容器
-d 后台方式运行
-it 使用交互方式运行,进入容器查看内容
-P 指定容器端口 -p 8080:8080
-p ip:主机端口:容器端口
-p主机端口:容器端口
-p容器端口
容器端口
docker run -it centos /bin/bash # 启动并进入centos容器
- 退出容器
exit # 停止并退出容器
Ctrl+P+Q # 不停止退出容器
- 列出当前运行的容器
docker ps -a #显示当前运行的容器+历史运行容器
docker ps [参数] # 列出当前运行的容器
-a # 显示当前运行的容器+历史运行容器
-n=? # 显示最近创建的容器
-q # 只显示容器编号
- 删除容器
docker rm [容器id] # 删除指定容器
docker rm -f $(docker ps -aq) #递归删除所有的容器
docker ps -aq | xargs docker rm #删除所有的容器
- 启动和停止容器
docker start [容器id] # 启动容器
docker restart [容器id] # 重启容器
docker stop [容器id] # 停止当前正在运行的容器
docer kill [容器id] # 强制停止当前容器
常用其他命令
- 后台启动容器
docker run -d [镜像名]
注:
运行:docker run -d centos
时
docker ps
,发现centos停止了
常见坑:
docker容器使用后台运行,就必须要有一个前台进程,docker发现没有应用,就会自动停止
比如:nginx容器启动后,发现自己没有提供服务,就会自动停止。
- 查看日志
docker logs -tf --tail [条目数量] [容器id]
docker logs -tf [容器id] (如果没有日志)
自己编写shell脚本
docker run -d centos /bin/sh -c "while true;do echo yunnuo;sleep 1;done"
- 查看容器中进程信息 ps
docker top [容器id]
- 查看容器元数据
docker inspect [容器id]
- 进入当前正在运行的容器
通常我们使用后台方式运行容器,需要进入容器,修改配置
docker exec -t [容器id] bashShell #进入容器,开启新终端
docker attach [容器id] #今日容器正在执行的终端,不启动新进程
# 测试
[root@VM-4-11-centos ~]# docker exec -it 8ab5a3cee8dd /bin/sh
sh-4.4#
sh-4.4#
sh-4.4#
sh-4.4#
sh-4.4# ls
bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var
sh-4.4# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 01:38 ? 00:00:00 /bin/sh -c while true;do echo yunnuo;sleep 1;done
root 733 0 0 01:50 pts/0 00:00:00 /bin/sh
root 800 1 0 01:51 ? 00:00:00 /usr/bin/coreutils --coreutils-prog-shebang=sleep /usr/bin/sleep 1
root 801 733 0 01:51 pts/0 00:00:00 ps -ef
sh-4.4#
- 从容器内拷贝到主机
命令
docker cp [容器id]:[容器目录文件] [主机目录] # docker cp 1a2425e2bf06:/home/test.java /home
# 进入容器内部
[root@VM-4-11-centos home]# docker attach 1a2425e2bf06
[root@1a2425e2bf06 /]# cd /home/
[root@1a2425e2bf06 home]# ls
#在容器内创建test.java 文件
[root@1a2425e2bf06 home]# touch test.java
# 退出容器
[root@1a2425e2bf06 home]# exit
exit
# 查看历史启动容器
[root@VM-4-11-centos home]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1a2425e2bf06 centos "/bin/bash" 2 minutes ago Exited (0) 10 seconds ago bold_neumann
ad41d24e54b5 centos "-c 'while true;do e…" 24 minutes ago Created crazy_lewin
# 拷贝指定容器内文件到主机上
[root@VM-4-11-centos home]# docker cp 1a2425e2bf06:/home/test.java /home
[root@VM-4-11-centos home]# ls
lighthouse test.java yunnuo.java