Docker的安装、基础命令与项目部署

这篇具有很好参考价值的文章主要介绍了Docker的安装、基础命令与项目部署。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

docker是快速构建、运行、管理应用的工具,本文记录了docker安装、docker基础命令、docker的基本操作以及java项目的部署。


一、docker安装与MySQL部署

主要讲述在Linux环境下docker的安装过程。

1.Linux环境下docker的安装

(1)基于CentOS7

1.切换到root。

su root

Docker的安装、基础命令与项目部署,docker,docker,eureka,容器

2.卸载旧版本docker。
Docker的安装、基础命令与项目部署,docker,docker,eureka,容器

yum remove docker \
    docker-client \
    docker-client-latest \
    docker-common \
    docker-latest \
    docker-latest-logrotate \
    docker-logrotate \
    docker-engine

3.配置docker的yum库
安装一个yum工具:

yum install -y yum-utils

安装成功后,执行命令,配置docker的yum源:

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

Docker的安装、基础命令与项目部署,docker,docker,eureka,容器

4.安装docker

yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Docker的安装、基础命令与项目部署,docker,docker,eureka,容器
5.启动和校验

# 启动Docker
systemctl start docker

# 停止Docker
systemctl stop docker

# 重启
systemctl restart docker

# 设置开机自启
systemctl enable docker

# 执行docker ps命令,如果不报错,说明安装启动成功
docker ps

Docker的安装、基础命令与项目部署,docker,docker,eureka,容器

(2)基于Ubuntu

1.卸载旧版本

apt-get remove docker docker-engine docker.io containerd runc

如果出现如下情况,需要添加管理员权限(su root)才可以卸载:
Docker的安装、基础命令与项目部署,docker,docker,eureka,容器
2.更新软件包

sudo apt update
sudo apt upgrade

Docker的安装、基础命令与项目部署,docker,docker,eureka,容器
3.添加docker依赖库

apt-get install ca-certificates curl gnupg lsb-release

Docker的安装、基础命令与项目部署,docker,docker,eureka,容器
4.添加docker官方GPG密钥

curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

Docker的安装、基础命令与项目部署,docker,docker,eureka,容器
5.添加docker软件源

sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"

Docker的安装、基础命令与项目部署,docker,docker,eureka,容器

6.安装docker

apt-get install docker-ce docker-ce-cli containerd.io

Docker的安装、基础命令与项目部署,docker,docker,eureka,容器

7.校验

sudo docker run hello-world

Docker的安装、基础命令与项目部署,docker,docker,eureka,容器

二、docker基础

1.常见命令

Docker最常见得命令就是操作镜像、容器得命令,官方文档:https://docs.docker.com/

(1)快速创建一个mysql容器(MySQL得一键安装)。

docker run -d \
	--name mysql \
	-p 3306:3306 \
	-e TZ=Asia/Shanghai \
	-e MYSQL_ROOT_PASSWORD=123 \
	mysql

docker run:创建并运行一个容器,-d是让容器在后台运行。

–name mysql:给容器起个名字,必须唯一。

-p 3306:3306:设置端口映射。

-e KEY=VALUE:是设置环境变量。

镜像名称结构:
Repository:TAG => 镜像名:版本号

(2)docker pull :拉取镜像。

Docker的安装、基础命令与项目部署,docker,docker,eureka,容器

(3)docker images:查看本地镜像。

Docker的安装、基础命令与项目部署,docker,docker,eureka,容器

(4)docker save:保存镜像到本地压缩文件。

Docker的安装、基础命令与项目部署,docker,docker,eureka,容器

(5)docker rmi:删除本地镜像。

Docker的安装、基础命令与项目部署,docker,docker,eureka,容器

(6)docker load:查看容器。

(7)docker run -d --name:创建并运行容器。

Docker的安装、基础命令与项目部署,docker,docker,eureka,容器

(8)docker stop:关闭容器。

(9)docker ps:查看容器。

	 docker ps -a:查看所有容器。

Docker的安装、基础命令与项目部署,docker,docker,eureka,容器

(10)docker start:启动指定容器

(11)docker restart:重新启动指定容器

Docker的安装、基础命令与项目部署,docker,docker,eureka,容器

(12)docker rm:删除指定容器

	docker rm -f:强制删除容器

Docker的安装、基础命令与项目部署,docker,docker,eureka,容器

(13)docker logs:查看容器运行日志

		options:
				-f:跟踪日志输出
				--since:显示某个开始时间的所有日志
				-t:显示时间戳
				--tail:仅列出最新N条容器日志

Docker的安装、基础命令与项目部署,docker,docker,eureka,容器

(14)docker exex:进入容器

Docker的安装、基础命令与项目部署,docker,docker,eureka,容器

2.命名别名

(1)编辑bashrc文件。

vi /root/.bashrc

Docker的安装、基础命令与项目部署,docker,docker,eureka,容器

(2)添加需要简化的命令。
Docker的安装、基础命令与项目部署,docker,docker,eureka,容器
(3)执行如下命令,使其命令别名生效。

source /root/.bashrc

Docker的安装、基础命令与项目部署,docker,docker,eureka,容器

3.数据卷

(1)什么是数据卷?

数据卷是一个虚拟目录,它将宿主机目录映射到容器内目录,方便我们操作容器内文件,或者方便迁移容器产生的数据。

(2)如何挂载数据卷?

在创建容器时,利用 -v 数据卷名:容器内目录完成挂载。
容器创建时,如果发现挂载的数据卷不存在时,会自动创建。

(3)数据卷的常见命令有哪些?

docker volume ls:查看数据卷
docker volume rm:删除数据卷
docker volume inspect:查看数据卷详情
docker volume prune:删除未使用的数据卷

(4)演示–MySQL的匿名数据卷

1.查看MySQL容器详细信息

docker inspect mysql

重点关注如下部分:
Docker的安装、基础命令与项目部署,docker,docker,eureka,容器

2.查看该目录下的MySQL的data文件

ls -l /var/lib/docker/volumes/55800fa091f23d27e2e45c2b68fd57f1570b264ec047c61a24f257359f2b6f72/_data

Docker的安装、基础命令与项目部署,docker,docker,eureka,容器

(5)挂载本地目录或文件

由于数据卷的目录结构较深,为了操作简便,我们可以直接将容器目录与宿主机指定目录挂载。
1.挂载语法

# 挂载本地目录
-v 本地目录:容器内目录
# 挂载本地文件
-v 本地文件:容器内文件

注意:本地目录或文件必须以/或./开头。

2.演示
(1)将本地文件上传至虚拟机/root目录下:
Docker的安装、基础命令与项目部署,docker,docker,eureka,容器
Docker的安装、基础命令与项目部署,docker,docker,eureka,容器
(2)删除mysql容器,并进入到~。

# 删除mysql容器
docker rm -f mysql
# 切换至~
cd ~

(3)创建并运行mysql容器,挂载本地目录

docker run -d \
  --name mysql \
  -p 3306:3306 \
  -e TZ=Asia/Shanghai \
  -e MYSQL_ROOT_PASSWORD=123 \
  -v ./mysql/data:/var/lib/mysql \
  -v ./mysql/conf:/etc/mysql/conf.d \
  -v ./mysql/init:/docker-entrypoint-initdb.d \
  mysql

(4)查看root目录,可以发现~/mysql/data目录已经自己创建好了

ls -l mysql

Docker的安装、基础命令与项目部署,docker,docker,eureka,容器
(5)进入MySQL

docker exec -it mysql mysql -uroot -p123

Docker的安装、基础命令与项目部署,docker,docker,eureka,容器

4.镜像

部署如下demo项目以及对应的Dockerfile:
Docker的安装、基础命令与项目部署,docker,docker,eureka,容器
(1)将准备好的上述两个文件上传到虚拟机的/root/demo下。
Docker的安装、基础命令与项目部署,docker,docker,eureka,容器
(2)在当前目录下构建一个名为docker-demo的容器。

docker build -t docker-demo:1.0 .

Docker的安装、基础命令与项目部署,docker,docker,eureka,容器
(3)查看镜像列表。

docker images

Docker的安装、基础命令与项目部署,docker,docker,eureka,容器
(4)运行该镜像。

# 1.创建并运行容器
docker run -d --name dd -p 8080:8080 docker-demo:1.0
# 2.查看容器
docker ps -a
# 3.访问(访问的是之前已经部署好的项目docker-demo)
curl localhost:8080/hello/count

5.网络

(1)基础命令

命令 说明
docker network create 创建一个网络
docker network ls 查看所有网络
docker network rm 删除指定网络
docker network prune 清除未使用的网络
docker network connect 使指定容器连接加入某网络
docker network disconnect 使指定容器连接离开某网络
docker network inspect 查看网络详细信息

(2)实现在同一个自定义网络中,不使用ip地址,通过别名互相访问。

1.确保需要加入同一网络的容器的status在up状态。
Docker的安装、基础命令与项目部署,docker,docker,eureka,容器
2.创建一个自定义网络。

# 创建网络
docker network create yeam
# 查看所有网络
docker network ls

Docker的安装、基础命令与项目部署,docker,docker,eureka,容器
3.将容器加入自定义网络。

# 将mysql容器加入自定义网络
docker network connect yeam mysql
# 将dd容器加入自定义网络
docker network connect yeam dd
# 也可以在创建容器的时候直接加入网络(但是创建时指定容器,就不会加入默认网桥)
# docker run -d --name dd -p 8080:8080 --network yeam docker-demo:1.0

Docker的安装、基础命令与项目部署,docker,docker,eureka,容器
Docker的安装、基础命令与项目部署,docker,docker,eureka,容器

4.检验网络是否互通。
不使用ip,使用容器名也可以访问。
Docker的安装、基础命令与项目部署,docker,docker,eureka,容器

三、项目部署

在此以黑马商城的项目为例,进行部署。

1.数据库

(1)将mysql文件夹上传至虚拟机的root/下。
Docker的安装、基础命令与项目部署,docker,docker,eureka,容器
(2)创建mysql容器。

# 删除原来的mysql容器
docker rm -f mysql
# 创建
docker run -d \
  --name mysql \
  -p 3306:3306 \
  -e TZ=Asia/Shanghai \
  -e MYSQL_ROOT_PASSWORD=123 \
  -v ./mysql/data:/var/lib/mysql \
  -v ./mysql/conf:/etc/mysql/conf.d \
  -v ./mysql/init:/docker-entrypoint-initdb.d \
  mysql
 # 查看root目录,发现./mysql/data目录以及自己创建好了
 ls -l mysql
 # 进入mysql容器,查看数据库是否初始化完成
 docker exec -it mysql mysql -uroot -p123

Docker的安装、基础命令与项目部署,docker,docker,eureka,容器

2.后端

(1)使用idea将打包好的jar包和Dockerfile文件上传至/root目录下。
Docker的安装、基础命令与项目部署,docker,docker,eureka,容器
(2)创建项目的镜像。

docker build -t hmall .

Docker的安装、基础命令与项目部署,docker,docker,eureka,容器
(3)检查
通过浏览器可以访问:http://虚拟机ip:18080/search/list

3.前端

(1)前端代码基于nginx进行部署,将准备好的nginx部署目录上传至虚拟机。
Docker的安装、基础命令与项目部署,docker,docker,eureka,容器
(2)nginx同时代理项目中的两个端口。
18080:对应hmall-portal
18081:对应hmall-admin

docker run -d \
  --name nginx \
  -p 18080:18080 \
  -p 18081:18081 \
  -v /root/nginx/html:/usr/share/nginx/html \
  -v /root/nginx/nginx.conf:/etc/nginx/nginx.conf \
  --network yeam \
  nginx

注意:这里的yeam为上面的自定义网络。

4.测试

使用http://虚拟机ip端口:18080/和http://虚拟机ip端口:18081/进行访问。文章来源地址https://www.toymoban.com/news/detail-739550.html


到了这里,关于Docker的安装、基础命令与项目部署的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • docker 常用命令大全(基础、镜像、容器、数据卷)

    镜像的名称组成: 镜名称一般分两部分组成:[repository]:[tag]。 在没有指定tag时,默认是latest,代表最新版本的镜像 如图: 这里的mysql就是repository,5.7就是tag,合一起就是镜像名称,代表5.7版本的MySQL镜像。 常见的镜像操作命令如图: 从DockerHub中拉取一个nginx镜像并查看 1)

    2024年03月12日
    浏览(55)
  • Docker的常用命令:加速你的容器化开发与部署

    人不走空                                                                          目录         🌈个人主页:人不走空       💖系列专栏:算法专题 ⏰诗词歌赋:斯是陋室,惟吾德馨 1. 容器生命周期管理 1.1 启动容器 1.2 停止容器 1.3 重启容器 1.4 删除容器

    2024年02月19日
    浏览(43)
  • 如何用docker容器部署nuxt3项目

     Nuxt3是基于Vue3的一个开发框架,基于服务器端渲染SSR,可以更加方便的用于Vue的SEO优化。 Nuxt 3.0 新特性包括: 更轻量:以现代浏览器为目标的服务器部署和客户端产物最多可缩小 75 倍 更快:基于 nitro 提供动态代码分割能力,以优化冷启动性能 Hybrid:增量静态生成和其他

    2024年02月14日
    浏览(31)
  • Docker容器:docker基础及安装

    (1)Docker是在Linux容器里运行应用的开源工具,是一种轻量级的“虚拟机”。 (2)是一个开源的应用容器引擎,基于go语言开发并遵循了apache2.0协议开源。 (3)Docker 的容器技术可以在一台主机上轻松为任何应用创建一个轻量级的、可移植的、自给自足的容器。 2.1 docker虚拟

    2024年02月05日
    浏览(51)
  • Docker 容器命令 和安装各种镜像环境

    1.1.卸载(可选) 如果之前安装过旧版本的Docker,可以使用下面命令卸载: 1.2.安装docker 首先需要大家虚拟机联网,安装yum工具 然后更新本地镜像源: 然后输入命令: docker-ce为社区免费版本。稍等片刻,docker即可安装成功。 1.3.启动docker Docker应用需要用到各种端口,逐一去

    2024年02月04日
    浏览(41)
  • Docker部署(5)——使用docker run命令部署运行jar项目

           对于一些简单的单体项目,可以使用 docker run 命令可以直接在命令行中运行容器,无需事先构建镜像。这相较于之前使用的 dockerfile 文件来运行部署项目相当于是另外一种简单的部署方法,关于之前使用dockerfile 文件来运行部署这种方法,具体可以参考下面这篇文章

    2024年02月10日
    浏览(48)
  • 解决Docker部署SpringBoot项目时各容器的相互调用

    目录 一、项目问题场景: 二、问题分析: 三、解决各容器互相调用的办法: 1、第一步: 2、第二步: 3、第三步: 一、项目问题场景: 项目打包成jar包后,通过 可以正常连接我本地的docker容器中的其他服务,如mysql,nacos,sentinel,rabbitmq等等 但是当我将这个jar包打包成镜

    2024年02月16日
    浏览(44)
  • ubuntu安装教程及docker安装容器,前后端部署

    1.0、Linux的常用命令 1.1、虚拟机安装Ubuntu20.0.4 1、 2、 3、 4、 5、 6、 7、 8、待补充 9、默认选择 10、 11、 12、 13、 14、 15、修改完成后,点击上面的完成。 16、 17、语言建议英文 防止中文出现问题-----问题可能会有 18、 19、 20、 21、 22、 23、 24、不能使用root用户创建,改回别

    2024年02月04日
    浏览(46)
  • Zabbix最简易安装部署:基于docker容器

    zabbix 读音: 正确读法: [`zæbiks] ,中文发音:擦日阿(ra)贝克斯 zabbix 是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。 zabbix 能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在

    2024年02月12日
    浏览(51)
  • Docker容器化部署若依微服务ruoyi-cloud项目

    接下来的内容以 Ubuntu 22.04.1 操作系统为例。 验证版本信息 Note: 在 CentOS7 上使用上述 yum 方式安装的 Docker ,默认自带了Docker Compose Plugin,不过命令是 docker compose 。 docker pull docker run docker images docker ps docker logs docker start docker stop docker restart docker rmi docker rm docker exec docker netwo

    2024年02月04日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包