docker容器
-
运行镜像
docker run [option] IMAGE[:TAG][COMMAND][ARG...] > [^IMAGE]:镜像名 > [^COMMAND]:执行的命令 > [^ARG]:运行参数
-
使镜像具有“对话”能力
docker run -i -t [imageID] /bin/bash
-
搜索镜像
docker search [image]
-
拉取镜像
docker pull [options] NAME[:TAG]
-
保存镜像
docker save [image] -o 保存的位置
-
加载镜像
docker load -i 镜像保存文件位置
-
删除(一个或多个)镜像
docker rmi -f [container]
-
删除全部镜像
docker rmi -f $(docker images -aq)
-
强制删除镜像
docker image rm [image]
-
查看容器
docker ps
-
运行容器
docker start [container]
-
在后台运行容器
docker run -d [container] --name
-
进入容器
docker exec -it [container] /bin/bash
docker attach [container] -
导出容器
docker export [container] > [local filename]
-
导入容器
cat [file] \docker import - [import image]
-
停止容器
docker stop [containerID]
-
删除容器
docker rm -f [container]
-
kill容器
docker kill [container]
-
查看容器端口
docker port [container]
-
查看某一容器位置
which [container]
-
开放一个容器的端口到主机上
#(-p)
eg: docker run -d -p 8080:80 [container] (8080宿主机端口,80容器端口)
-
查看主机某一端口是否开启
natstat -na |grep [port]
-
开放容器所有端口到主机上
#(-P)
eg: docker run -d -P [container]
-
容器文件拷贝(从容器内 拷出)
docker cp [container] 容器内路径 容器外路径
-
容器文件拷贝(从容器外 拷入)
docker cp 容器外路径 [container]: 容器内路径
-
查看容器日志
docker logs -f --tail=要查看末尾多少行 默认 all [containId]
-
更换容器名
docker rename [container] 新容器名
-
制作镜像
1)`编写 dockerfile` 2) `所有者 maintainer` 3) `from [container]` `maintainer me` `docker build .` `docker build -t jpress:lastset . (重新构建给他起个名字,-t给镜像指定一个tag)`
-
设置随着服务启动而启动
symtemctl enable docker
-
查看docker的运行状态
systemctl status docker
-
查看docker版本号信息
docker version (docker info)
注意: 每一个docker容器都是独立和安全的应用平台(我们可以理解为,每一个docker容器都相当于在我们的服务器上占用资源然后开辟了属于自己的一个空间 也可以理解为服务器),这是docker一大特点,每个容器之间的环境都是隔离的
-
给一些软件设置开机自启动
–restart=always
(docker run -itd --name 别名 -p 端口映射 --restart=always [container] /bin/bash)
若容器已启动怕重新启动数据丢失 进行数据挂载 (将容器内部数据与容器外部数据绑定起来,类似一个双持久化,当容器删除后,宿主机文件数据目录还在,下次启动容器只要将数据目录指向宿主机数据所在位置即可回复)
-v 宿主机文件存储位置:容器内文件位置 (可多组文件同时中间用空格隔开)
(docker run -d -p 端口映射 --name 别名 --restart=always -v 宿主机文件存储位置:容器内文件位置 --requirepass “password”)
若不想删除容器,又想让这个容器设置开机自启动,那么我们修改其启动配置即可
(docker update -restart=always [container] 或 docker container update -restart=always [container]) -
自己提交一个镜像
docker commit -m="提交信息" -a="作者信息" [container] 提交后的镜像名称:TAG
docker 运维命令
docker:write /var/lib/docker/tmp/GetImageBlob3253: no space left on device (docker在写入的时候报错机器无空间剩余)
-
查看docker工作目录
docker info | grep “Docker Root Dir”
-
查看docker磁盘占用总体情况
du -hs /var/lib/docker/
-
更改docker工作目录
首先我们需要先停止docker
(sydtemctl stop docker)
创建新工作目录文件夹(mkdir -p /doker-data)
原docker数据迁移(cp -r /var/lib/docker)
修改docker数据存储配置vim /etc/docker/daemon.json
启动后我们的配置就生效了systemctl restart docker
-
查看docker工作目录
docker info | grep “Docker Root Dir”
-
查看docker的磁盘使用具体情况
docker system df
-
删除无用的容器和镜像
删除异常停止的镜像
docker rm `docker ps -a | grep Exited | awk '{print $1}'`
删除名称或标签为none的镜像
docker rmi -f `docker images | grep '<none>' | awk '{print $3}'`
删除所有无容器使用的镜像
docker system prune -a
-
查找大文件
find / -type f -size +100M -print0 | xargs -0 du -h | sort -nr
-
查找指定docker使用目录下大于指定大小文件
find / -type f -size +100M -print0 | xargs -0 du -h | sort -nr | grep '/var/lib/docker/overlay2/*' * *(查找 '/var/lib/docker/overlay2/*' 开头的且大于100m的文件)