docker指令(未完待续)

老是忘记docker指令,网上看的一些有些找起来太麻烦,自己常用的一些挂这里,方便以后找

指令整理除官网外,借鉴了以下
https://blog.csdn.net/liujiahuan_/article/details/126222628

B站-编程不良人的教学视频(他的视频挺全的,但是文档收费,就几块钱,你们可以买,帮助学习,我是自学狗+白嫖党,我没买

docker基础指令

// 启动docker
systemctl start docker

// 关闭docker
systemctl stop docker 

// 重启docker
systemctl restart docker 

// 设置docker开机自启动
systemctl enable docker

// 查看docker运行状态(显示绿色代表正常启动)
systemctl status docker 

// 查看docker镜像列表
docker  images

// 单独搜索镜像
docker  images  镜像名 

// 拉取镜像 不加tag(版本号) 即拉取docker仓库中 
// 该镜像的最新版本latest 加:tag 则是拉取指定版本
// 不知道镜像名字和版本就去docker hub搜索(比较慢)
docker pull 镜像名 
docker pull 镜像名:tag 

删除镜像

// 删除一个
docker rmi -f 镜像名/镜像ID

// 删除多个 其镜像ID或镜像用用空格隔开即可 
docker rmi -f 镜像名/镜像ID 镜像名/镜像ID 镜像名/镜像ID

// 删除全部镜像  -a 意思为显示全部, -q 意思为只显示ID
docker rmi -f $(docker images -aq)

// 强制删除,慎用
docker image rm 镜像名称/镜像ID

查看运行的docker容器指令

// 查看正在运行的容器
docker  ps

// 查看所有容器包括正在运行和停掉的容器 
docker  ps  -a

// 下面三个也能看,具体区别我忘了,懒得烦文档了
docker ps -q
docker ps -qa
docker ps -aq

docker删除容器指令

// 删除停止的容器
docker rm 容器名字|容器ID

// 删除正在运行的容器
docker rm -f 容器名字|容器ID

// 删除所有容器 这里$()符号代表先执行里面的指令
docker rm -f $(docker ps -aq)

运行容器

// 运行docker容器
docker run 镜像ID|镜像名字|repository:tag

// -it 表示 与容器进行交互式启动 
// -d 表示可后台运行容器 (守护式运行)  
// --name 给要运行的容器 起的名字  
// /bin/bash  交互路径(可以不加)
docker run -it -d --name 要取的别名 镜像名:Tag /bin/bash  

// 运行docker容器并且开启服务端口指向docker容器端口,加-p
docker run -p 外部端口号:容器端口号 repository:tag
例如:
docker run -p 8080:8080 tomcat:jre8

// 运行docker容器起个名字,加--name
docker run -p 外部端口号:容器端口号 --name 名字 repository:tag
例如:
docker run -p 8080:8080 --name tomcatJre8 tomcat:jre8

// 运行docker容器后台运行并起个个名字,加-d
docker run -d -p 外部端口号:容器端口号 --name 名字 repository:tag
例如:
docker run -d -p 8080:8080 --name tomcatJre8 tomcat:jre8

// -v 共享磁盘/数据卷
docker run -d -p 8080:8080 --name tomcatJre8 -v 宿主机目录(绝对路劲):容器内绝对路劲目录 tomcat:jre8

// 自动创建数据卷名字(docker会在不存在这个数据卷的同时自动创建,同时映射宿主机的目录,同时在启动容器时会将testMuLu对应容器目录中全部内容,复制到testMuLu中)
docker run -d -p 8080:8080 --name tomcatJre8 -v testMuLu:容器内绝对路劲目录 tomcat:jre8

docker数据卷相关操作

// -v 共享磁盘/数据卷
docker run -d -p 8080:8080 --name tomcatJre8 -v 宿主机目录(绝对路劲):容器内绝对路劲目录 tomcat:jre8

// ro(read-only) 容器内的数据卷为只读,不可以共享到宿主机路径
// 宿主机数据卷可以共享,不影响容器
docker run -d -p 8080:8080 --name tomcatJre8 -v 宿主机目录(绝对路劲):容器内绝对路劲目录:ro tomcat:jre8

// 自动创建数据卷名字(docker会在不存在这个数据卷的同时自动创建,同时映射宿主机的目录,同时在启动容器时会将testMuLu对应容器目录中全部内容,复制到testMuLu中)
docker run -d -p 8080:8080 --name tomcatJre8 -v testMuLu:容器内绝对路劲目录 tomcat:jre8

// 查看数据卷
docker volume ls

// 查看某个数据卷细节
docker volume inspect 数据卷名字

// 创建数据卷
docker volume create 数据卷名字

// 删除没有使用的数据卷
docker volume prune

// docker 删除指定数据卷
docker volume rm 卷名

docker访问容器内部

// /bin/bash 必须加,有的服务是/bin/sh,有的是 bash 不然会报错
// 一个容器是一个操作系统进程的隔离,相当于一个小的操作系统,写bash就是为了进入这个容器的终端,并与容器内的命令终端进行交互
docker  exec -it 容器ID bash
docker  exec -it 容器ID /bin/bash 
docker  exec -it 容器ID /bin/sh

// 查看容器内进程
docker top 容器ID|容器名字

// 查看容器内部细节信息
docker inspect 容器ID

docker退出容器

// 退出容器就是
exit  或者 ctrl+p+q 

docker停止容器

// 停止容器,这里停了还能再起来,并不是永久消失了,除非你把容器删了
docker stop 容器名|容器ID

docker查看容器内服务运行日志

// 查看容器日志
docker logs 容器Id|容器名称

// -f 实时查看
docker logs -f 容器Id|容器名称

// -tf 实时展示日志的同时加时间戳
docker logs -tf 容器Id|容器名称

// --tail 查看容器文件尾部的多少日志
// 例如下面的指令就是只显示5行
docker logs --tail 5

docker文件传输,操作系统与容器传输文件 或者是部署java web项目,直接cp进去就行了

// docker cp 容器ID|容器名字:容器内的资源路劲|资源名字 操作系统路径
docker cp tomcat:/usr/local/tomcat/RUNNING.txt ./RUNNING.txt

// docker cp 文件|目录 容器Id|容器名字:/容器内部资源路劲 
docker cp 你的文件 tomcat:/usr/local/tomcat

将容器打包成镜像

docker commit -m "描述语句" -a "作者是谁" 容器ID 新镜像名字:版本号

将镜像备份出来

docker save 镜像名称:TAG -o 文件名

加载外部导入的容器

docker load -i 容器名字

docker 查看/创建 网桥配置

// 查看网桥配置
docker network ls

// 创建自定义网桥
docker create -d bridge 网桥名字
例如:docker create -d bridge test

// 指向使用自定义网桥
// 跑起来的容器,会把容器名字跟容器的网段IP自动做映射,例如网点IP是172.170.0.2
// 那么日后在这个网桥关联的容器中,可以使用容器名字也能与其他容器通信,名字==IP地址
docker run -d -p 8081:8080 --network test --name testNetwork tomcat:jre8

// 删除新建的网桥
docker network rm 网桥名字

// 查看网桥信息
docker inspect 网桥名字

docker 安装mysql

// 拉取mysql镜像
docker pull mysql:版本号(可以不加,不加就是拉最新的)

// 指定变量运行mysql
docker run -e MYSQL_ROOT_PASSWORD=你自己设定一个root密码 mysql:(你上面拉取的版本号)

// docker启动mysql并且将数据持久化
// dockerhub中,mysql存储数文件目录放置在容器中的/var/lib/mysql
// 注意,改完配置得重启mysql
docker run -d -p 外部端口:3306 -e MYSQL_ROOT_PASSWORD=你自己设定一个root密码 --name testMysql -v mysqldata:/var/lib/mysql mysql:(你上面拉取的版本号)


// 启动mysql服务,后台运行,指定用户密码,指定荣启铭,使用数据卷进行数据持久化,已修改之后的配置文件启动
docker run -d -p 外部端口:3306 -e MYSQL_ROOT_PASSWORD=你自己设定一个root密码 --name testMysql -v mysqldata:/var/lib/mysql -v mysqlTestConfig:/etc/mysql mysql:(你上面拉取的版本号)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值