当前位置:   article > 正文

Docker常用命令_docker-compose 清除所有网络占用

docker-compose 清除所有网络占用

镜像命令:

  • docker images ——查看本地仓库所有镜像

  • docker pull 镜像名:镜像tag(版本) ——从远程仓库拉取该镜像,不写版本默认latest

  • docker search 镜像名:镜像tag(版本) —— 远程仓库查找该镜像,不写版本默认latest

  • docker rmi 镜像名:镜像tag(版本) ——删除本地仓库镜像,不写版本默认latest

  • docker rmi -f 镜像名:镜像tag(版本) ——强制删除本地仓库镜像,不写版本默认latest

  • docker images -q ——查看所有镜像的id

  • docker rmi -f $(docker images [镜像名] -q) ——删除所有[镜像名的]镜像

例:docker rmi -f $(docker images tomcat -q) ——删除所有tomcat镜像

容器命令(常用):

  • docker run -d -p 本机端口号:容器端口号 --name 容器名 镜像id/镜像名:tag ——后台运行一个容器,并设置本地和容器内部的端口映射

例:docker run -d -p 8081:8080 --name tomcat01 tomcat:8.0 ——后台运行tomcat:8.0这个镜像,本机端口8081映射容器内部端口8080,容器名tomcat01。外部访问tomcat01路径:http://本地ip地址:8081

  • docker stop 容器id/容器名——停止正在运行的容器

  • docker start 容器id/容器名——启动停止的容器

  • docker restart 容器id/容器名——重启容器

  • docker pause 容器id/容器名——暂停一个容器

  • docker unpause 容器id/容器名——取消暂停

  • docker rm -f 容器id/容器名——强制删除容器

  • docker kill 容器id/容器名——杀死容器,和rm的区别是rm会让容器有个缓冲时间再关闭

  • docker ps -a ——查看所有容器

  • docker ps -aq ——查看所有容器的id

  • docker exec -it 容器id/容器名 bash ——进入一个容器内部,bash窗口操作

  • docker cp 文件 容器id/容器名:路径 —— 将本地文件拷贝到容器中

  • docker cp 容器id/容器名:文件 本地路径 ——将容器中的文件拷贝到本地

  • docker top 容器id/容器名——查看容器内运行进程

  • docker inspect 容器id/容器名——查看容器内部细节

  • docker run -v 本机绝对路径:容器路径——添加数据卷,清空容器内路径的内容

  • docker run -v 本机绝对路径:容器路径 ro——添加数据卷、容器内路径只读,清空容器内路径的内容

  • docker run -v 本机文件夹别名:容器路径——添加数据集、不清空容器内路径的内容

  • docker commit -m "描述信息" -a "作者" 容器id/容器名 镜像名:tag ——将容器打成镜像

  • docker save 镜像名:tag -o tar文件名——将镜像打成tar包

  • docker load -i tar文件——将tar文件加载为镜像

使用docker启动mysql

docker run -d -p 3306:3306 --name mysql01 --restart=always -v /home/lzh/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7

docker pull mysql:5.7

解释:-d后台运行,-p端口映射,--name给容器起名字,--restart=always容器会随着docker引擎的重启动而重启动,-v设置容器数据卷持久化保存mysql数据,-e MYSQL_ROOT_PASSWORD=123456 设置mysql容器访问账号root密码123456

redisconfig下存放redis.conf 只需配置需要的内容如:

使用docker启动redis

第一种方式:

docker run -d -p 6379:6379 --name redis01 --restart=always -v /home/lzh/data/redis:/data redis:6.08 redis-server --appendonly yes

--appendonly yes 代表使用aof持久化,生成在/data文件夹下,同步到本机/home/lzh/data/redis

第二种方式:

docker run -d -p 6379:6379 --name redis01 --restart=always -v /home/lzh/data/redisconfig:/data redis:6.0 redis-server /data/redis.conf

  1. appendonly yes #开启aof持久化方案
  2. appendfilename aa.aof #aof生成文件名

这样就会在本机redisconfig生成aa.aof文件到本机备份了

docker网络

用处:

容器间通信,当两个容器处于一个网桥上时可以互相发送请求,如:当两个tomcat容器,可以在容器内部使用 curl http://ip或容器名:8080互相访问

  • docker network create -d bridge 网络名称——创建网桥

  • docker network ls ——查看网络

  • docker network inspect 网络名——查看网络细节

  • docker network rm 网络名——删除网络

  • docker network prune ——删除没被使用的网络

  • docker run --network 网络名——运行容器时将容器加入到某个网络

  • docker network connect 网络名 容器名/容器id ——运行容器后将一个容器加入 一个网络

  • docker inspect 容器名/容器id 查看容器IP

docker容器启动时默认加入docker0网桥,只有在同一个网络下的容器才能互相访问,默认情况容器启动便可以互相访问。

docker 数据卷

  • docker volume create 数据卷别名——创建一个数据卷

  • docker volume ls——列出全部数据卷

  • docker volume rm 数据卷名称——删除数据卷

  • docker volume inspect 数据卷名称——查看数据卷详细信息

Dockerfile

Dockerfile就是docker镜像的描述文件

Docker-Compose

作用:管理容器,一次可以启动多个容器并且管理先后顺序、设置网络。一个正在运行的容器即是一个服务

下载docker-compose

sudo curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-compose-uname -s-uname -m -o /usr/local/bin/docker-compose

添加可执行权限

sudo chmod +x /usr/local/bin/docker-compose

启动命令

docker-compose up

编写方式和Dockerfile类似,需要编写docker-compose.yml文件

示例(Dockerfile,docker-compose.yml同时使用):

创建一个最简单的SpringBoot的demo,连接mysql提供一个查询接口。

mysql连接url,其中mysql:3306中的mysql是服务名

jdbc:mysql://mysql:3306/dockertest?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true

Dockerfile:

  1. FROM openjdk:8-jre
  2. WORKDIR /home/lzh/
  3. ADD ./demo-0.0.1-SNAPSHOT.jar ./demo.jar
  4. EXPOSE 8989
  5. ENTRYPOINT ["java","-jar"]
  6. CMD ["demo.jar"]

docker-compose.yml

  1. version:"3.3"
  2. services:
  3. mysql: #服务名
  4. image: mysql:8.0
  5. ports:
  6. - "3306:3306" #端口映射
  7. networks:
  8. - demo #设置网桥
  9. environment:
  10. MYSQL_ROOT_PASSWORD: 123456 #设置mysql访问账号密码
  11. volumes: "/home/lzh/mysql/bak:/var/lib/mysql" #设置mysql持久化
  12. restart: always #随着docker重启动
  13. demo: #demo服务名
  14. build: ./ #Dockerfile方式构建,指定Dockerfile路径
  15. depends_on: mysql #mysql服务启动差不多了再启动
  16. networks:
  17. - demo #和mysql同一个网桥
  18. ports:
  19. - "8989:8989" #暴露端口
  20. networks:
  21. demo: #docker-compose up执行时会先创建demo网桥

将demo的jar包和Dockerfile,docker-compose.yml放在同一个目录并进入该目录

执行docker-compose up

启动成功。接口也能正常访问。

更多请移步至中文手册:https://www.coonote.com/docker/docker-tutorial.html

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/74279
推荐阅读
相关标签
  

闽ICP备14008679号