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

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Docker是一种容器化技术,它能够将应用程序及其依赖项打包成一个独立的容器,使其能够在不同的环境中进行部署和运行。以下是Docker简单使用方法: 1. 首先,你需要安装Docker Desktop,它是Docker的图形化工具,可以简化Docker使用过程。可以通过官方网站下载并安装。 2. 安装完成后,启动Docker Desktop。在桌面或任务栏上找到Docker图标并点击打开。 3. 一旦Docker Desktop启动,你就可以使用Docker命令行工具(Docker CLI)或Docker图形界面来管理和操作Docker。 4. 使用Docker CLI时,你可以使用各种命令来创建、运行和管理Docker容器。例如,使用"docker pull"命令从Docker仓库中下载一个镜像,使用"docker run"命令来运行一个容器使用"docker ps"命令来查看正在运行的容器等。更详细的Docker命令可以通过在网上搜索获得。 5. 此外,你可以使用"docker attach"命令或"docker exec"命令来进入正在运行的容器并以命令行交互。这将允许你在容器内执行命令和查看容器的日志。 总结Docker简单使用方法包括安装Docker Desktop,使用Docker CLI执行各种命令来管理和操作Docker容器,以及使用"docker attach"或"docker exec"命令进入正在运行的容器进行命令行交互。希望这些信息能对你有所帮助!<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [docker简单使用](https://blog.csdn.net/qq_50626505/article/details/124214734)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [docker简单使用](https://blog.csdn.net/weiweixiao3/article/details/82224715)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值