1 docker 常用操作指令汇总
#查看系统版本
cat /etc/redhat-release
#查看docker
yum serch docker
# 安装依赖包
yum intall -y yum-utils device-mapper-persistent-data lvm2
# 添加docker软件包源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 安装docker CE
yum install -y docker-ce
#启动docker
systemctl start docker
#重新启动docker
systemctl restart docker
#设置下开机自启动
systemctl enable docker
#查看安装的版本信息
docker info
#查询SELinux的运行模式
getenforce
# 关闭防火墙
systemctl stop firewalld
# 自启动关闭防火墙
systemctl disable firewalld
#快速关闭,切换成 permissive(宽容模式)
setenforce 0
setenforce: SELinux is disabled
#安装ntpdate的包
yum install ntpdate
#同步时间
ntpdate time.windows.com
#docker镜像加速器
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io
#镜像加速器配置完后,需要重启docker
systemctl restart docker
#下载镜像
docker pull nginx
#看镜像的分层
docker history nginx
#docker的工作目录
ls /var/lib/docker
#查看镜像的id
ls /var/lib/docker/overlay2/
#查看镜像的源数据
ls /var/lib/docker/image/overlay2/
#后台启动nginx
docker run -d nginx
#后台启动nginx,挂载/data
docker run -d --name nginx-test --v /data nginx
#把服务器的/home/data目录,挂载到docker的/data目录
docker run -d --name nginx-test --v /home/data:/data nginx
#列出容器
docker ps
# 进入容器终端并且的保留为容器终端的输入形式
docker exe -it [CONTAINER_ID] bash
# docker镜像
docker image
# 命令用于列出所有映像
docker image ls
# 从docker文件构建映像
docker image build
# 显示映像的历史记录
docker image history
# 从tarball导入内容以创建文件系统映像
docker image import
# 显示一个或多个映像的详细信息
docker image inspect
# 从tar存档或STDIN加载映像
docker image load
# 删除未使用的映像
docker image prune
# 从注册表中拉出映像或存储库
docker image pull
# 将映像或存储库推送到注册表
docker image push
# 删除一个或多个映像
docker image rm
# 将一个或多个映像保存到tar存档(默认情况下流式传输到STDOUT)
docker image save
# 创建引用SOURCE_IMAGE的标签TARGET_IMAGE
docker image tag
# 查看nginx的信息
docker inspect nginx
#导出容器文件系统tar
docker export 7bf83 > nginx.tar
# 查看nginx.tar大小
du -sh nginx.tar
#导入容器文件系统tar
docker import nginx.tar nginx-test
#保存一个镜像
docker save nginx > 123.tar
#加载一个镜像
docker load < 123.tar
# 快速操作指令
sed -i s/SELINUX=enforcing/SELINUX=disabled/g /etc/sysconfig/selinux && setenforce 0
# 后台启动镜像
docker run -d [镜像名字]
# 查看容器选项的参数
docker run --help
# 查看更多的命令
docker run --help|more
# 工具类镜像
docker run -it busybox
# 给容器分配一个伪终端
docker run -itd busybox
#容器访问外部网络
docker run -d busybox ping www.baidu.com
#docker ps -l
docker ps -l
# 查看容器的ip
docker inspect 1d2fbe42932a
# 指定端口,多个参数,用多个-e
docker run -itd -e hello=123 -e abc=123 -p 88:80 --name=test1 -h testxxx --restart=always nginx[镜像名称]]
# 进入到容器里边
docker exec -it [容器id] bash
# 查看cpu
top
# 查看内存
free -m
# 查看test1的资源利用率情况
docker stats test1
# 查看stats的相关指令
docker stats test1 --help
# 不让交互的
docker stats --no-stream test1
# 允许容器使用一个半的CPU
docker run -d --name nginx04 --cpus="1.5" nginx
#允许容器最多使用50%的CPU:
docker run -d --name nginx05 --cpus=".5" nginx
# 列出正在运行的容器
docker container ls
# 列出所有运行的容器
docker container ls -a
# 查看容器的ip
docker inspect [container-id]
# 执行命令
docker exec 1d2fbe42932a[container-id] ls
# 拷贝文件
docker cp anaconda-ks.cfg[拷贝的文件] 39851f020d9a:/
# 查看拷贝的文件
docker exec 39851f020d9a ls
# 从容器里边拷贝文件出来(调试的时候用)
docker cp 39851f020d9a[容器id]:/dev/console /opt
# 查看日志
docker logs 39851f020d9a
# 查看容器的端口
docker port 39851f020d9a
# 查看容器进程
docker top 39851f020d9a
# 查看容器的资源使用情况
docker stats 39851f020d9a
# 启动容器
docker start 39851f020d9a
# 停止容器
docker stop 39851f020d9a
# 重新启动容器
docker restart 39851f020d9a
#查看宿主机的文件
ls /var/lib/docker/volumes
#查看docker的帮助命令
docker --help
#查看volume的信息
docker volume ls
#查看volume的帮助指令
docker volume --help
#查找所有的容器
docker ps -a
#列出所有容器的id
docker ps -aq
#批量删除容器
docker rm -f $(docker ps -aq)
#nginx网站根目录
docker exec -it f945f1b838e81355e689257d890e2a28b0db242c91cc8caabdfd277802413e76 bash
#创建数据卷
docker volume create wwwroot
#查看数据卷
docker volume inspect wwwroot
#创建数据卷(第一种方式)
docker run -d --name=test1 --mount type=volume,src=wwwroot,dst=/usr/share/nginx/html nginx
#创建数据卷(第二种方式)
docker run -d --name=nginx-test -v nginx-vol:/usr/share/nginx/html nginx
#查看容器的信息
docker inspect cf4479e62dd5927d8553be29251789a6fcfa56f42bdf754d8bdcbb1a5491da8b bash
#绑定容器数据卷到宿主机
docker run -d -it --name=nginx-test --mount type=bind,src=/root/wwwroot,dst=/usr/share/nginx/html nginx
#查看网络监听
netstat -antp
#查看ip
ifconfig
#设置host的网络
docker run -it --net=host busybox sh
#通过none模式设置网络
docker run -it --net=none busybox sh
#通过命名空间模式设置网络
docker run -it --net=container:reverent_fermi busybox sh
# 查看网络
docker network ls
# 创建test网桥
docker network create test
# 创建t1容器
docker run -d --name t1 busybox sh
# 添加t1到test网桥
docker run -it --name t1 -net=test busybox
# 创建t1容器
docker run -d --name t2 busybox sh
# 添加t2到test网桥
docker run -it --name t2 -net=test busybox
# 查看网络规则
iptables -vnL
# 对外暴露88端口
docker run -d -p 88:80 nginx
#监听过滤端口88
netstat -antp |grep 88
# 查看iptables的88规则
iptables-save |grep 88
# 切换到root权限
sudo su
#先停止所有的container,才能够删除其中的images
docker stop $(docker ps -a -q)
#删除images,通过image的id来指定删除谁
docker rmi <image id>
#想要删除untagged images,那些id为<None>的image可以用
docker rmi $(docker images | grep "^<none>" | awk "{print $3}")
#要删除全部image
docker rmi $(docker images -q)
2 补充
永久改动:vi /etc/selinux/config
ls /var/lib/docker
删除未使用的映像 docker image prune
导出容器文件系统tar
导入容器文件系统tar