Docker解析及轻量级PaaS平台演练(二)--Docker的一些简单命令

简介: 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq1010885678/article/details/46291047 上一篇中...
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq1010885678/article/details/46291047

上一篇中,我们对Docker有了一个基本的了解
下面将讨论Docker中Image,Container的相关实际操作

Image管理:

镜像的命名和版本管理:

普通镜像的命名规范
{namespace}/{repository}:{tag}

namespace是docker hub的用户名
repository是项目名称,如:Ubuntu,mysql等
tag表示版本信息,例如:cesc/mysql:5.5,tag是可选的,默认为latest

显示本地的images

docker images

我们可以通过docker命令从Docker Hub上拉取镜像回本地:

docker pull {image name}
//如果没有指定image的tag的话,会把该image的所有版本都下载下来

上传镜像:

docker login
//登陆到docker hub中

docker commit containerId
//将一个指定的Container打包成一个image,这时会返回一个临时的imageId(一大串)

docker tag imageId {namespace}/{repository}:{tag}
//根据imageId重命名image

docker push {namespace}/{repository}:{tag}
//push到docker hub

运行Container:

在Host看来,运行一个Container就是开启一个独立namespace进程而已

通过docker run命令来启动一个container,必须指定一个image作为初始化的文件系统

docker run [options] image[:tag] [commond][args]
//[options]表示一些运行参数
//如-t,表示后面用哪个image作为template
//-d,表示后台运行等

//[commond],表示可以输入一些linux命令 如ls等,作为container实际运行的首进程
//[args],表示上面的命令需要的参数,如-al

如果-t 后面的image不存在本地的话,会自动到docker hub上下载对应的image

docker run -d -t image[:tag]//-d让container运行在后台

docker run -a stdin//默认是运行在前台的,会将输入,输出和错误信息打印出来,通过-a来限制只有stdin,这样就看不到输出和错误信息了

docker attach containerId//将一个后台的container attach到前台

docker ps//查看当前的container,用法和linux中的ps类似

docker inspect containerId//获得指定container的所有信息

docker logs containerId//查看指定container的日志信息

网络设置:

Docker默认使用桥接的方式,如下图:

这里写图片描述

Host上对应每个Container都有veth{id}这样的虚拟网卡,对应每个Container里面的eth0,Host上的bridge负责将数据在各个veth中转发,以达到通信的目的

docker run -dt --net none image[:tag] 
//none关闭网络
//host使用主机网络栈,将不做veth映射
//container:{containerId}使用另外一个container的网络

端口映射:

docker通过端口映射的方式,能够将container内部的网络端口暴露到外部

docker run -dt -p 80:8000 image[:tag] 
//将内部的80端口暴露出来,外部可以通过8000访问到,如果没有指定外部对应的端口号,将会默认分配一个49000-49900之间的一个端口,可以通过docker ps来查看自动分配的端口

Volume绑定:

通过-v参数可以将Host上的一个目录绑定到container中,允许container对其进行读写

docker -dt -v /home/jchubby:/test image[:tag]
//将host上的/home/jchubby映射到container中的/test目录

环境变量设置:

既然container可以看成一个独立的os,那么肯定会有环境变量的设置

举一个例子来说明:
有两个container,a是提供数据库服务的,b是web应用,那么b要怎么才能知道a的主机ip,端口等信息,然后进行服务接入呢?

docker run --name mysql -dt image[:tag]
//通过--name为该container指定一个唯一的name

docker run --link mysql:db -dt image[:tag]
//通过link参数,可以将指定name(mysql)的container信息以环境变量的方式加到当前的container中,:db是mysql的别名

–link运行产生的环境变量结果如下:

这里写图片描述

如何进入Container:

每个Container都是一个独立的os,我们可以像操作VM虚拟机一样操作它

连接到Container有三种方式:

1、sshd
需要在Container中安装sshd服务,然后通过ssh连接即可(安全性不高)

2、nsenter
由linux提供,用来进入一个进程的namespace

docker inspect --format "{{.State.Pid}}" <container-id>
//首先要获得Container在host中的进程id

nsenter --target $pid --mount --uts --ipc --net --pid
//然后通过下面的命令进入Container

3、exec
是Docker新进入的一个命令,用来进入一个Container来运行一些指令

docker exec containerId commod args
相关文章
|
2月前
|
存储 Java Linux
【Docker】(2)还在浏览网页寻找Docker命令?本文全面列举与使用Docker里的各个命令!想要什么命令直接从本文拿!
docker有着比VM更少的抽象层 由于Docker不需要Hypervisor实现硬件资源虚拟化,运行在Docker容器上的程序直接使用的都是实际物理机的硬件资源 因此在CPU、内存利用率上Docker将会在效率上有明显优势 docker利用的时宿主机的内核,而不需要加载操作系统OS内核 当新建一个容器时,Docker不需要和虚拟机一样重新加载一个操作系统内核 进而避免引寻、加载操作系统内核返回等比较费时费资源的过程,当新建一个虚拟机时,虚拟机软件需要加载OS,返回新建过程时分钟级别的。 而Docker由于直接利用宿主机的操作系统,则省略了返回过程,因此新建一个Docker容器只需
385 124
|
5月前
|
安全 Unix Linux
Docker中授权普通用户使用docker命令以及解决无权限访问/var/run/docker.sock错误。
通过上述步骤,可以有效解决普通用户无法使用Docker命令的问题,同时处理 `/var/run/docker.sock`权限错误。这样的设置不仅方便用户使用Docker提供的各项服务,同时还能保护系统的安全性。在进行此类配置更改时,请确保理解每一步骤的作用及潜在的安全风险,尤其是在修改文件权限时。在实际的操作中,始终应该努力保持系统的最低必要权限,避免过度放宽权限,这是保障系统安全的一个重要方针。
1660 75
|
6月前
|
Docker 容器
Docker run命令-p参数详解
本文介绍Docker端口映射的基础用法。通过`docker run -p &lt;宿主机端口&gt;:&lt;容器端口&gt;`实现端口映射,例如`-p 5000:80`将宿主机5000端口映射到容器80端口,外部访问宿主机5000端口时流量会转发至容器内部的80端口。示例命令中,`-d`用于后台运行,`--restart=always`确保容器自动重启,`--name`指定容器名称。部署完成后可通过`http://服务器IP地址:5000`验证服务是否正常运行。
|
4月前
|
存储 持续交付 Docker
Docker:轻量级容器技术重塑应用交付
Docker:轻量级容器技术重塑应用交付
|
4月前
|
Kubernetes Cloud Native 持续交付
Docker:轻量级容器化技术解析
Docker:轻量级容器化技术解析
|
4月前
|
运维 测试技术 Docker
Docker:轻量级容器化技术革命
Docker:轻量级容器化技术革命
|
4月前
|
存储 持续交付 Docker
Docker:颠覆传统开发的轻量级容器革命
Docker:颠覆传统开发的轻量级容器革命
|
6月前
|
存储 安全 数据建模
Docker数据卷深入解析与操作技巧
通过巧妙使用Docker数据卷,我们就能实现数据的灵活管理和无缝迁移,享受容器化的便捷,同时确保数据的安全与高效共享。
141 6
|
5月前
|
Docker 容器
熟悉Docker容器管理命令:start、stop与restart详细使用指南
掌握这些Docker容器管理命令对于维护应用程序的正常运行至关重要。在实际操作中,应注意容器配置、关联资源以及日志等信息,确保各项操作都能够顺畅并且安全地执行。
668 0

热门文章

最新文章