微服务之Docker知识点总结(二)

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 微服务之Docker知识点总结

3.设置Docker开机自启动


查看已启动的服务


systemctl list-units --type=service


查看是否设置开机启动


systemctl list-unit-files | grep enable


设置开机启动


systemctl enable docker.service


关闭开机启动


systemctl disable docker.service


三. 使用Docker


1.镜像操作


镜像名称


首先来看下镜像的名称组成:


镜名称一般分两部分组成:[repository]:[tag]。

tag就是镜像的版本,在没有指定tag时,默认是latest,代表最新版本的镜像

如图:


500de4763d83440f98ab2c8de7ee205d.png


这里的mysql就是repository,5.7就是tag,合一起就是镜像名称,代表5.7版本的MySQL镜像。


镜像命令


常见的镜像操作命令如图:


02ad3ca9085b449c877cce9697a86829.png


我们还可以通过 docker search [镜像名称] 来查询镜像


下面我们通过一个案例来实际操作这些命令:


需求一:从DockerHub中拉取一个nginx镜像并查看


1)首先去镜像仓库搜索nginx镜像,比如DockerHub或者daocloud (建议后者,前者太卡)


da0d0f9e060142a9838cd908d468268a.png

3a4c0e068a8045cdaea8524f0babd61d.png


如果你要用阿里的镜像加速,依次运行如下命令:

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://l8zasouv.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

2)拉取1.9.1版(用的DaoCluod的源):


docker pull daocloud.io/library/nginx:1.9.1


4b1c93a252bb4defb3f46c8d18c5fb0c.png

ce05224b54164cba9076f8ea6a20b6e3.png


3)通过命令:docker images 查看拉取到的镜像


docker images


8388d9e4af52415e8a5e540ff97c1dc9.png


需求二:保存、导入镜像。利用docker save将nginx镜像导出磁盘,然后再通过load加载回来


1)利用docker xx --help命令查看docker save和docker load的语法


例如,查看save命令用法,可以输入命令:


docker save --help


e5f805e014484b0ca081ab50c1a5b969.png


命令格式:


docker save -o [保存的目标文件名称] [镜像名称]


2)使用docker save导出镜像到磁盘

运行命令:


docker save -o nginx.tar daocloud.io/library/nginx:1.9.1


b23ddd11602f4708a93a5ffe3915f12d.png


3)使用docker load加载镜像

先删除本地的nginx镜像:


docker rmi daocloud.io/library/nginx:1.9.1


然后运行命令,加载本地文件:


docker load -i nginx.tar


结果:

7aaa9f7867c24685ac970d5a0cc511c6.png

2200ee0a20a240469bae0b340af42fdc.png


2.容器操作


容器相关命令:


7b3b0bbb54fa4dbda012407bb780512b.png


容器保护三个状态:


运行:进程正常运行

暂停:进程暂停,CPU不再运行,并不释放内存

停止:进程终止,回收进程占用的内存、CPU等资源

其中:


docker run:创建并运行一个容器,处于运行状态


docker pause:让一个运行的容器暂停


docker unpause:让一个容器从暂停状态恢复运行


docker stop:停止一个运行的容器


docker start:让一个停止的容器再次运行


docker rm:删除一个容器


docker容器设置自动启动: 启动时加–restart=always

下面一个例子:


docker run -tid --name isaler_v0.0.11 -p 8081:8080 --restart=always -v /alidata/iDocker


–restart=有以下的参数值:

Flag Description

no 不自动重启容器. (默认value)

on-failure 容器发生error而退出(容器退出状态不为0)重启容器

unless-stopped 在容器已经stop掉或Docker stoped/restarted的时候才重启容器

always 在容器已经stop掉或Docker stoped/restarted的时候才重启容器


3.案例一 :创建并运行一个容器


创建并运行nginx容器的命令:


docker run --name 容器名称 -p 80:80 -d daocloud.io/library/nginx


命令解读:


docker run :创建并运行一个容器

–name : 给容器起一个名字,比如叫做abc

-p :将宿主机端口与容器端口映射,冒号左侧是宿主机端口,右侧是容器端口

-d:后台运行容器

nginx:镜像名称,例如nginx

这里的-p参数,是将容器端口映射到宿主机端口。


默认情况下,容器是隔离环境,我们直接访问宿主机的80端口,肯定访问不到容器中的nginx。


现在,将容器的80与宿主机的80关联起来,当我们访问宿主机的80端口时,就会被映射到容器的80,这样就能访问到nginx了:


a46be03650df4146b0e0ef7c82e03165.png

5f1ab187a0aa43208d95989e3b9c9bb1.png


2e7e96b8de78489391316a3a4c69a8d5.png


4.案例二 :进入容器,修改文件


需求:进入Nginx容器,修改HTML文件内容,添加“害恶细君欢迎您”


提示:进入容器要用到docker exec命令。


步骤

1)进入容器。进入我们刚刚创建的nginx容器的命令为:


docker exec -it nginx bash


命令解读:


docker exec :进入容器内部,执行一个命令


-it : 给当前进入的容器创建一个标准输入、输出终端,允许我们与容器交互


nginx :要进入的容器的名称


bash:进入容器后执行的命令,bash是一个linux终端交互命令


2)进入nginx的HTML所在目录 /usr/share/nginx/html


容器内部会模拟一个独立的Linux文件系统,看起来如同一个linux服务器一样:


2dfaf47e418d4aeb9736e808981e00c1.png


nginx的环境、配置、运行文件全部都在这个文件系统中,包括我们要修改的html文件。


查看DockerHub网站中的nginx页面,可以知道nginx的html目录位置在/usr/share/nginx/html


我们执行命令,进入该目录:


cd /usr/share/nginx/html


查看目录下文件:


954c67eebb0a47a4ad553083012aae0b.png


3)修改index.html的内容


容器内没有vi命令,无法直接修改,我们用下面的命令来修改:


sed -i -e 's#Welcome to nginx#害恶细君欢迎您!#g' -e 's#<head>#<head><meta charset="utf-


在浏览器访问自己的虚拟机地址,例如我的是:http://192.168.172.130/,即可看到结果:


13ccbda4a5384bbab86db9e5f78f524b.png


输入exit可以退出docker的终端。

相关文章
|
1月前
|
Java Docker 微服务
如何使用Docker和Docker Compose部署微服务
【2月更文挑战第12天】
229 0
|
1月前
|
Kubernetes API Docker
Docker+K8s基础(重要知识点总结)
Docker+K8s基础(重要知识点总结)
63 0
|
1月前
|
监控 持续交付 Docker
深入浅出:基于Docker的微服务部署实践
【2月更文挑战第26天】在当前软件开发领域,微服务架构与容器化技术成为提升应用可伸缩性、可靠性和开发效率的关键手段。本文将深入探讨如何利用Docker容器技术实现微服务的快速部署与管理,涵盖环境搭建、服务打包、网络配置及持续集成等核心话题。通过实例演示,旨在为开发者提供一套行之有效的微服务部署解决方案。
|
2月前
|
开发者 Docker 微服务
深入浅出:使用Docker容器化部署微服务架构
在当今快速迭代的软件开发环境中,微服务架构因其高度解耦和独立性而成为企业首选。然而,微服务的管理和部署可能会变得复杂和繁琐。本文将探讨如何利用Docker,一个轻量级的容器化技术,来简化和加速微服务的部署。我们将从Docker的基础概念入手,详细介绍如何创建、配置和运行微服务容器,最后讨论Docker在微服务架构中的优势和挑战。本文旨在为开发者提供一条清晰的路径,通过容器化技术实现微服务架构的高效部署和管理。
87 0
|
2月前
|
Kubernetes 开发者 Docker
深入浅出:使用Docker容器化部署微服务架构
在当今快速演进的软件开发领域,微服务架构因其高度的模块化和可伸缩性而受到广泛欢迎。然而,微服务的部署和管理也带来了新的挑战。本文旨在通过深入浅出的方式,探讨如何利用Docker容器技术有效地部署和管理微服务架构。我们将从Docker的基本概念出发,逐步深入到如何构建、部署微服务,并讨论在此过程中可能遇到的常见问题及其解决策略。本文不仅适合刚接触Docker和微服务的新手,也为有经验的开发者提供了实用的参考。
56 1
|
2月前
|
JSON JavaScript Docker
深入浅出:使用Docker容器化部署微服务架构
本文旨在向读者展示如何利用Docker技术高效地构建和部署微服务架构。通过深入浅出的方式,我们将探索Docker的基本概念、容器化的优势以及如何将其应用于微服务架构中。此外,文章还将提供一个简单的示例,指导读者实践如何使用Docker将一个现有的后端应用容器化,并部署到本地开发环境中。不同于传统的摘要,这里我们强调实践操作的重要性,鼓励读者通过实际操作来加深对Docker和微服务架构的理解。
52 1
|
2月前
|
Kubernetes 负载均衡 Docker
深入浅出:使用Docker容器化部署微服务
在当今快速变化的软件开发领域,微服务架构因其高度的模块化和可伸缩性而受到广泛欢迎。然而,微服务的部署和管理带来了新的挑战。本文将探讨如何利用Docker容器技术,简化和加速微服务应用的部署过程。我们将从Docker的基础知识入手,逐步深入到如何构建、部署和管理微服务容器。通过本文,读者将获得一套实用的工具和方法论,以便在自己的项目中高效地应用Docker和微服务技术。
|
2月前
|
Java 开发者 Docker
深入浅出:使用Docker容器化部署微服务架构
在本文中,我们将探索Docker容器技术如何革新微服务架构的部署方式,提高开发效率和应用的可扩展性。不同于传统摘要的概述风格,我们将通过一个实际案例,步骤明晰地展示如何将一个简单的微服务应用容器化,并在Docker环境中部署运行。本文旨在为开发者提供一个清晰、易懂的指南,帮助他们理解容器化技术的基本原理和操作流程,无论是初学者还是有经验的开发人员都能从中获益。
|
25天前
|
Docker 容器
进入Docker容器中
进入Docker容器中
34 2
|
5天前
|
存储 运维 监控
构建高效稳定的Docker容器监控体系
【4月更文挑战第18天】 在现代微服务架构中,Docker容器已成为部署和运行应用的标准环境。随之而来的挑战是如何有效监控这些容器的性能与健康状况,确保系统的稳定性和可靠性。本文将探讨构建一个高效稳定的Docker容器监控体系的关键技术和方法,包括日志管理、性能指标收集以及异常检测机制,旨在为运维人员提供实用的指导和建议。
10 0