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 ...
随机推荐
- C# SM2算法 加密,解密,签名,验签
最近时间在整SM2算法,在网上看到不少代码,基本都是使用BouncyCastle库,现在这个版本算比较好的拿来分享给大家. 首先引入包 Portable.BouncyCastle 完整代码见Gitee ...
- Git配置环境变量
由于学习需要装了git,使用终端查看版本号时 提示 'git' 不是内部或外部命令,也不是可运行的程序 或批处理文件. 原因 因为没有配置Git环境变量 解决方法:配置环境变量 开始菜单=>设置 ...
- MYSQL中怎么查询LONGBLOB类型数据的大小
在MySQL中,LONGBLOB 是一种二进制大对象(BLOB)数据类型,用于存储大量的二进制数据.但是,LONGBLOB 数据类型本身并不直接存储数据的大小(长度).它存储的是二进制数据的实际内容. ...
- 在 AWS 平台搭建 DolphinScheduler
AWS平台搭建 DolphinScheduler DolphinScheduler 是当前热门的调度器,提供了完善的可视化.拖拉拽式的调度.在 AWS 平台上提供了 airflow 与 step fu ...
- Linux 内核:设备驱动模型(3)class与device
Linux 内核:设备驱动模型(3)class与device 背景 前面我们知道了设备如何通过总线与驱动匹配,也了解了设备插拔时与用户空间是如何通过uevent基于环境变量进行交互的. 前面看过了设备 ...
- Linux 获取 指定目录 下的 最大子目录深度
命令 function getDirMaxDepth() { folder_name="$1" if [ ! -d "$folder_name" ];then ...
- TI AM64x工业核心板硬件说明书(双核ARM Cortex-A53 + 单/四核Cortex-R5F + 单核Cortex-M4F,主频1GHz)
1 硬件资源 创龙科技SOM-TL64x是一款基于TI Sitara系列AM64x双核ARM Cortex-A53 + 单/四核Cortex-R5F + 单核Cortex-M4F设计 ...
- 虽然说自己是个废物,但年纪轻轻就有了120w
- ComfyUI进阶篇:ControlNet核心节点
前言: ControlNet_aux库包含大量的图片预处理节点,功能丰富,适用于图像分割.边缘检测.姿势检测.深度图处理等多种预处理方式.掌握这些节点的使用是利用ControlNet的关键,本篇文章将 ...
- 使用SVG做模型贴图的思路
大多数情况下,三维模型使用PNG,JPG作为模型的贴图,当然为了性能优化,有时候也会使用压缩贴图来提高渲染效率和较少GPU压力. 今天提供一种新的思路,使用SVG作为模型的贴图,可以达到动态调整图片精 ...