1.获取镜像
docker search centos #搜索镜像, 优先选官方,stars数量多
docker pull centos:6.9 #拉取镜像(下载镜像),注意版本
docker push nginx #推送镜像(上传镜像)
docker load #导入镜像
例子: docker load -i docker_nginx.tar.gz
docker save #导出镜像
例子:docker save centos:7 -o docker_centos7.tar.gz
docker image ls #查看镜像列表
docker tag #给镜像打标签
2.查询镜像
docker images
docker images -q
docker inspect ID/name:tag
3.删除镜像
docker rmi IID #删除某个镜像
docker rmi `docker images -q` #批量删除
docker rmi $(docker images -q) #批量删除
docker image prune -a --filter "until=24h" #清空24h之前的所有镜像
4.导入导出镜像
docker image save nginx >/opt/nginx.tar.gz
docker image load -i /opt/nginx.tar.gz
5.清理命令
docker image prune #清理未使用的镜像
--all, -a false #显示所有映像(默认隐藏中间映像)
--force, -f false #不要提示确认
docker container prune #清理无用的容器
docker volume prune #清理无用的数据卷
6.docker容器基础管理
docker run #创建并启动容器
例子:docker run -d -it -p 80:80 nginx:latest
docker create #创建容器 --name
docker start #启动容器
docker stop #停止容器
docker restart #重启容器
docker kill #强制停止容器
docker ps #查看容器列表 -a 查看所有容器
docker rm #删除容器
批量删除所有容器 docker rm -f `docker ps -a -q`
docker exec #进入正在运行的容器(分配一个新终端)
例子: docker exec -it 容器id/容器名字 /bin/bash(/bin/sh)
docker attach 进入正在运行的容器(使用相同的终端),偷偷离开的快捷键ctrl +p+q(exit真正退出)
docker pause #中止容器,暂停容器内的所有进程,
此时,通过docker stats可以观察到此时的资源使用情况是固定不变的,
通过docker logs -f也观察不到日志的进一步输出。
docker unpause #解除中止,恢复
docker logs -t --since="2018-12-26 06:39:22" --until "2018-12-26 06:39:55" c-front #根据时间段查看容器操作日志
docker top #查看正在运行的进程
wait Block until a container stops, then print its exit code
--捕捉容器停止时的退出码
执行此命令后,该命令会“hang”在当前终端,直到容器停止,此时,会打印出容器的退出码。
--------------------------------------------------------------------------------------------------------
export Export a container's filesystem as a tar archive
--将容器的文件系统打包成tar文件
有两种方式:
docker export -o mysqldb1.tar mysqldb
docker export mysqldb > mysqldb.tar
---------------------------------------------------------------------------------------------------------
docker events [options] :从服务器获取实时事件。
OPTIONS说明:
-f :根据条件过滤事件;
--since :从指定的时间戳后显示所有事件;
--until :流水时间显示到指定的时间为止;
docker history [options] image:查看指定镜像的创建历史。
OPTIONS说明:
-H :以可读的格式打印镜像大小和日期,默认为true;
--no-trunc :显示完整的提交记录;
-q :仅列出提交记录ID。
docker logs [options] container:#查看指定容器的操作日志
Options:
--details 显示更多的信息
-f, --follow 跟踪日志输出,最后一行为当前时间戳的日志
--since string 显示自具体某个时间或时间段的日志
--tail string 从日志末尾显示多少行日志, 默认是all
-t, --timestamps 显示时间戳
-----------------------------------------------------------------------------------------
login Register or log in to a Docker registry
--登录到自己的Docker register,需有Docker Hub的注册账号
[root@localhost ~]# docker login
Username: ivictor
Password:
Email: xxxx@foxmail.com
WARNING: login credentials saved in /root/.docker/config.json
Login Succeeded
logout Log out from a Docker registry
--退出登录
[root@localhost ~]# docker logout
Remove login credentials for https://index.docker.io/v1/
七、查看容器IP
就算容器内部没有ip、ifconfig等命令,也可以获取IP
7.1 获取单个容器的IP
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container_name_or_id
7.2 要获取所有容器名称及其IP地址
docker inspect -f '{{.Name}} - {{.NetworkSettings.IPAddress }}' $(docker ps -aq)
如果使用docker-compose命令将是:
docker inspect -f '{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq)
7.3 显示所有容器IP地址
docker inspect --format='{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq)
7.4 实操
可以考虑在 ~/.bashrc 中写一个 bash 函数:
function docker_ip() {
? ? sudo docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' ?$1
}
function dockeriplist() {
? ? sudo docker inspect -f '{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq)
}
7.4.1 查看单个容器IP
docker_ip <container-ID>
7.4.2 查看所有容器IP
dockeriplist