Docker简单使用总结
写在前面
最近在部署前后端分离的SpringBoot项目,发现使用Docker技术很方便,特此记录一下Docker常用命令
1、常用网站
Docker docs :https://docs.docker.com/ 官方文档
Docker hub :https://hub.docker.com/ 镜像仓库
Windows 安装Docker ,这里推荐使用WSL2的方式,具体可以参考这篇文章:https://segmentfault.com/a/1190000038911660
Linux安装Docker,这个教程很多,这里提供两个Linux发行版的教程
- Centos7 :https://cloud.tencent.com/developer/article/1701451 或 https://docs.docker.com/engine/install/centos/
- Ubuntu :https://cloud.tencent.com/developer/article/1714396 或 https://docs.docker.com/engine/install/ubuntu/
更推荐官方文档
推荐一些快速入门的视频
2、Docker常用命令
2.1、Docker服务相关
Docker服务启动
systemctl start docker
守护进程重启
sudo systemctl daemon-reload
重启docker服务
方法1
systemctl restart docker
方法2
sudo service docker restart
关闭Docker
方法1
service docker stop
方法2
systemctl stop docker
2.2、常用Docker命令
查看docker版本
docker version
拉取镜像
docker pull <image name>:<tag>
image name 是要填入的镜像名,tag为版本号,tag可以省略,默认最新版,tag可以去官方仓库去查
例如拉取最新版mysql镜像
docker pull mysql
拉取指定版本的mysql镜像
docker pull mysql:8.0.31
查看已拉取的镜像
docker images
删除镜像
删除镜像前要先删除依赖此镜像的容器,即使这个容器没有运行,也要删除
docker rmi <image name or image id>
运行容器
基础命令如下
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
查看正在运行的容器
docker ps
查看所有容器的详细信息
docker ps -a
启动容器
docker start <container name>
停止容器
停止单个容器
docker stop <container name>
停止多个容器
docker stop $(docker ps -a -q)
删除容器
删除单个容器
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
Docker简单使用总结的更多相关文章
- Docker 简单入门
Docker 简单入门 http://blog.csdn.net/samxx8/article/details/38946737
- Docker简单介绍
Docker简单介绍 Docker是一个能够把开发的应用程序非常方便地部署到容器的开源引擎.由Docker公司团队编写,基于Apache 2.0开源授权协议发行.Docker的主要目的例如以下: 提供 ...
- Ubuntu Docker 简单安装 GitLab
相关博文: Ubuntu 简单安装 Docker Ubuntu 简单安装和配置 GitLab 服务器版本 Ubuntu 16.04 LTS. 1. 安装和配置 安装命令: sudo docker ru ...
- docker简单介绍----镜像和容器管理
docker可以分为三部分:docker镜像 docker仓库 docker容器 docker镜像:一个image可以包含一个镜像,也可以理解为一个系统模板,里面安装了相关应用,也可以是纯净版的 ...
- docker简单搭建gitlab
docker启动非常简单: docker run --detach --hostname 192.168.0.33 --publish 443:443 --publish 80:80 \ --publ ...
- docker 简单介绍及基础命令运用
一.什么是docker? Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源. 简单的来讲Docker实际上就是一个大型容器.容器是完全使用沙箱机制,相互之间不 ...
- docker简单入门之使用docker容器部署简单的java web开源项目jpress博客程序
一.在centos7.3上安装docker 前置条件 x86_64-bit 系统 kernel 3.10+ .检查内核版本,返回的值大于3.10即可 [root@node1 ~]# uname -r ...
- docker 简单入门(一)
本篇目录 写在最前面的话 docker概念介绍 镜像的概念.容器的概念 docker的安装介绍 写在最前面的话 大家好,首先跟大家说声对不起,我班门弄斧了,我本身是做系统开发,使用的语言是C#和JAV ...
- Docker简单说明
前段时间工作需要,简单的研究了下docker.侧重点放在docker的镜像定制方面,后续会研究下k8s的使用. Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的.可移植的.自给自足的 ...
- Docker 简单应用
Docker 允许你在容器内运行应用程序, 使用 docker run 命令来在容器内运行一个应用程序. 输出Hello world runoob@runoob:~$ docker run ubunt ...
随机推荐
- Prometheus监控系统(三)Prometheus与Grafana集成
1. Prometheus和Grafana集成 Grafana是一款采用Go语言编写的开源应用,主要用于大规模指标数据的可视化展现,是网络架构和应用分析中最流行的时序数据展示工具.目前已支持绝大部分常 ...
- 【ClickHouse】6:clickhouse集群高可用
背景介绍: 有四台CentOS7服务器安装了ClickHouse HostName IP 安装程序 程序端口 shard(分片) replica(备份) centf8118.sharding1.db ...
- SpringBoot 整合Activiti 7.X 从入门到精通
简介 Activiti 是一个轻量级工作流程和业务流程管理 (BPM) 平台,面向业务人员.开发人员和系统管理员.其核心是一个超快且坚如磐石的 Java BPMN 2 流程引擎.它是开源的,并根据 A ...
- oeasy教您玩转vim - 55 - # 参数替换
[Github地址] (https://github.com/overmind1980/oeasyvim) [Gitee地址] (overmind1980/oeasyvim) [蓝桥实验楼 邀请码 ...
- oeasy教您玩转vim - 60- # vim选项
vim选项 从头开始 这次我们从头开始 从进入vim之前开始 我们可以在终端里面给vim怎么样的参数呢? man vim 这个如果不行的话 要先运行unminimize更新manual 也可以在v ...
- 2023 NOIP 游记
\(\text{Day -INF}\) 提高 \(135\) 卡线进 \(\text{NOIP}\). 集训两天成绩:\(50 \to 135\). \(\text{Day 1}\) 开赛 \(13\ ...
- vscode取消json文件注释下划线
使用 vscode 打开一个json文件,如果有单行或多行注释,则会显示红色下划线,解决办法如下: 方法1 点击底部的JSON,选择 JSON with Comments 即可,然后红色下划线消失,底 ...
- 对于同一个项目,同时将其git到GitHub和Gitee
对于同一个项目,你可以同时将其git到GitHub和Gitee.这通常通过配置多个远程仓库地址来实现.以下是一步步的操作指南: 一.在GitHub和Gitee上创建仓库 GitHub: 登录GitHu ...
- el-date-picker 时间日期格式,选择范围限制
背景:ElementUI的 el-date-picker 使用时,有时候想要限制用户选择的时间范围,但是用的是datetimerange类型的选择器,不想单独写两个起始的选择器.我发现网上的方案大部分 ...
- 将txt转化为csv的方法和遇到问题
一.无法修改扩展名步骤如下 二.转换之后所有数据都挤在第一列 win10系统修改文件扩展名只需4部,打开我的电脑->查看->选择->查看->取消勾选(已知隐藏文件的扩展名)-& ...