首页 > 其他分享 >Docker简单使用总结

Docker简单使用总结

时间:2022-11-26 09:46:05浏览次数:57  
标签:总结 容器 简单 nginx mysql 镜像 Docker docker

写在前面

最近在部署前后端分离的SpringBoot项目,发现使用Docker技术很方便,特此记录一下Docker常用命令

1、常用网站

Docker docshttps://docs.docker.com/ 官方文档

Docker hubhttps://hub.docker.com/ 镜像仓库

Windows 安装Docker ,这里推荐使用WSL2的方式,具体可以参考这篇文章:https://segmentfault.com/a/1190000038911660

Linux安装Docker,这个教程很多,这里提供两个Linux发行版的教程

更推荐官方文档

推荐一些快速入门的视频

2、Docker常用命令

2.1、Docker服务相关

  1. Docker服务启动

     systemctl start docker
    
  2. 守护进程重启

    sudo systemctl daemon-reload
    
  3. 重启docker服务

    方法1

    systemctl restart docker
    

    方法2

    sudo service docker restart
    
  4. 关闭Docker

    方法1

    service docker stop
    

    方法2

    systemctl stop docker
    

2.2、常用Docker命令

  1. 查看docker版本

    docker version
    
  2. 拉取镜像

    docker pull <image name>:<tag>
    

    image name 是要填入的镜像名,tag为版本号,tag可以省略,默认最新版,tag可以去官方仓库去查

    例如拉取最新版mysql镜像

    docker pull mysql
    

    拉取指定版本的mysql镜像

    docker pull mysql:8.0.31
    
  3. 查看已拉取的镜像

    docker images
    
  4. 删除镜像

    删除镜像前要先删除依赖此镜像的容器,即使这个容器没有运行,也要删除

    docker rmi <image name or image id>
    
  5. 运行容器

    基础命令如下

    docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG...]
    

    如启动redis

    docker run -itd --name redis-test -p 6379:6379 redis
    

    启动mysql

    docker run --name=mysql-test -it -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql
    

    注意:此处启动redis和mysql数据存储于容器内,也就是说容器删除后数据会丢失,为了避免这个情况,我们可以将数据存储于宿主机

    启动mysql,数据存于宿主机

    docker run --name mysql-test  -p 3306:3306 -v /my/own/datadir:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
    
  6. 查看正在运行的容器

    docker ps
    

    查看所有容器的详细信息

    docker ps -a
    
  7. 启动容器

    docker start <container name>
    
  8. 停止容器

    停止单个容器

    docker stop <container name>
    

    停止多个容器

    docker stop $(docker ps -a -q)
    
  9. 删除容器

    删除单个容器

    docker rm <container name>
    

    删除多个容器

    docker rm $(docker ps -a -q)
    

3、Dockerfile的编写

因为我们的项目需要成为docker的镜像,所以我们必须先编写Dockerfile文件构建我们的项目镜像然后进行编排,Dockerfile文件可以帮我们进行构建。

FROM openjdk:8
EXPOSE 8080
ADD myproject-0.0.1-SNAPSHOT.jar app.jar
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java", "-jar", "/app.jar", "--spring.profiles.active=pro"]

上面几行命令其实很简单,首先依赖jdk8环境,对外暴露8080,然后就是复制myproject-0.0.1-SNAPSHOT.jar到docker容器中并命名为app.jar,最后是执行命令java -jar /app.jar —spring.profiles.active=pro,使用的是我们另外编写的一个线上环境配置(springboot的配置文件)。

4、docker-compose的使用

举个例子:我们需要用到的软件与服务分别有nginx、mysql、redis、还有我们的springboot项目,所以编写如下:

docker-compose.yml

version: "3"
services:
nginx: # 服务名称,用户自定义
  image: nginx:latest  # 镜像版本
  ports:
  - 80:80  # 暴露端口
  volumes: # 挂载
  - /root/nginx/html:/usr/share/nginx/html
  - /root/nginx/nginx.conf:/etc/nginx/nginx.conf
  privileged: true # 这个必须要,解决nginx的文件调用的权限问题
mysql:
  image: mysql:5.7.27
  ports:
  - 3306:3306
  environment: # 指定用户root的密码
    - MYSQL_ROOT_PASSWORD=admin
redis:
  image: redis:latest
myproject:
  image: myproject:latest
  build: . # 表示以当前目录下的Dockerfile开始构建镜像
  ports:
  - 8081:8081
  depends_on: # 依赖与mysql、redis,其实可以不填,默认已经表示可以
    - mysql
    - redis

写在末尾,本文只是简单总结了Docker的使用,更多详细内容请参考官方文档

参考博客

https://blog.csdn.net/EasternUnbeaten/article/details/80463837

https://www.zhuawaba.com/post/84

标签:总结,容器,简单,nginx,mysql,镜像,Docker,docker
From: https://www.cnblogs.com/mrneojeep/p/16926920.html

相关文章

  • centos下docker安装使用
      官网地址,安装说明:https://docs.docker.com/engine/install/centos/如安装过旧的版本,需要把之前的移除,执行命令sudoyumremovedocker\......
  • java简单解析wsdl文件
    1packagecom.example.demo.api.soap.client.userInterface.controller;234importorg.w3c.dom.Document;5importorg.w3c.dom.NamedNodeMap;6importor......
  • Docker
      ......
  • expect 的简单学习与使用
    背景最近工作中总有很多重复的事项.比较繁琐,想着能够简单一点是一点的角度准备采用expect来建华部分工作量.其实还可以使用其他方式来处理.但是感觉expect还是能够简......
  • 2022-2023-1 20221318 《计算机基础和程序设计》第十三周学习总结
    作业信息这个作业属于那个班级https://edu.cnblogs.com/campus/besti/2022-2023-1-CFAP作业要求https://www.cnblogs.com/rocedu/p/9577842.html#WEEK13作业目标学习......
  • 基于Docker的Golang开发
    一、Docker用于开发Docker不仅用于部署,它还可以用于开发。1、为什么要在开发中使用Docker主要有以下几个原因。1)一致的开发环境使用Docker,可以保证整个研发团队使用一致的开......
  • Docker Live时代 | 容器微时代,集思创未来-广州站
     容器微时代集思创未来有容云倾力打造DockerLive时代系列主题线下沙龙,每月一期畅聊容器技术生态,北京,深圳,广州,上海……有容云跨城带你起航!活动详情第一期:北京......
  • Docker家的容器到底是个啥?
    成电联创/ToB领域中,为企业提供快速开发、测试、应用等整体解决方案的公司日渐蓬勃,今日为大家介绍一下云计算领域的新一代虚拟技术-Docker.▍它是什么?Docker是......
  • Docker 公司与阿里云达成合作,在中国提供 Docker Hub 服务
    10月13日,在2016杭州·云栖大会上,全球知名的容器技术公司Docker供与阿里云宣布达成战略合作,双方将在容器服务领域进行紧密合作,阿里云将为客户提供更加先进的云上应用管理......
  • 第四周总结
    环境安装ubuntu命令模式学习openflow和SDN关系新思考......