Docker常用命令总结@TOC
安装
安装地址https://docs.docker.com/engine/install/
基本概念
镜像(image):docker镜像好比是一个模板,可以通过模板来创建容器服务
容器(container):docker利用容器技术,独立运行一个或者一组应用
仓库(repository):存放镜像的地方,分为公有仓库和私有仓库
Docker Hub,默认国外仓库,国内需要配置镜像加速
常用命令
帮助文档https://docs.docker.com/engine/reference/commandline/cli/
# 查看版本,检查是否安装正确
docker version
#测试安装hello-world,首先会搜索本地是否有hello-world镜像,如果有,则运行,如果没有则下载,然后启动运行
docker run hello-world
# 查看已经下载(安装)的镜像
docker images
# 可选项
-a, --all # 列出所有镜像
-q, --quiet # 只显示镜像的id
# 云加速配置(注意国内镜像地址的变化)
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://44qtbn8k.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
# docker信息查看
docker info
# 搜索镜像,建议去镜像库网站搜索,https://hub.docker.com/search?q=mysql
docker search mysql
# 可选项
--filter=STARS=3000 # 限定条件,STARS大于3000
# 下载镜像
docker pull mysql
# 镜像版本[:tag]
:tag
#删除镜像
docker rmi
# 删除指定的镜像
docker rmi -f 镜像id
# 删除多个镜像
docker rmi -f 镜像id 镜像id 镜像id
# 删除全部的镜像
docker rmi -f $(docker images -aq)
# 创建(启动)没容器
docker run [可选参数] image
# 参数说明
--name="Name" # 容器名字
-d # 后台方式运行
-it # 使用交互方式运行,进入容器查看内容
-p # 指定容器的端口 -p 8080:8080
-p ip:主机端口:容器端口
-p 主机端口:容器端口(常用)
-p 容器端口
容器端口
-P # 随机指定端口
# docker run [OPTIONS] IMAGE [COMMAND] [ARG...] 中有一个 COMMAND 参数,容器启动后会执行 COMMAND命令,它的默认值为 /bin/bash。也就是说容器在后台启动成功后,执行了 COMMAND 命令后直接关闭了 docker run -d --name ubuntu2 ubuntu:19.10 tail -f /dev/null
# 列出当前正在运行的容器
docker ps
-a # 列出当前正在运行的容器+历史运行过的容器
-n=? # 显示最近创建的n个容器
-q # 只显示容器编号
# 退出并停止容器
exit #退出窗口,如果只有这一个窗口,容器会停止 # 退出容器交互,容器不停止 Ctrl + P + Q
# 删除指定容器
docker rm 容器id
# 删除所有容器
docker rm -f $(docker ps -aq)
# 启动容器
docker start 容器id
# 重启容器
docker restart 容器id
# 停止容器
docker stop 容器id
# 强制停止当前容器
docker kill 容器id
# 日志
# 自己编写一段shell脚本
docker run -d centos /bin/sh -c "while true;do echo zhang; sleep 1;done"
# 显示日志
--tf # 显示日志
--tail number # 显示日志条数
docker logs -tf --tail=10 0ada54c20d0a
# 查看进程信息
docker top 容器id
# 查看元数据
docker inspect 容器id
#进入正在运行的容器
docker exec -it 4147713887dd /bin/bash # 开启新窗口,exit退出窗口,
docker attach 容器id # 当前正在运行的窗口
# 从容器拷贝文件到宿主机
docker cp 0ada54c20d0a:/home/test.java /home/
# 从宿主机拷贝文件到容器
docker cp /home/test.java 0ada54c20d0a:/home/