Docker容器入门指北

VSole2022-05-11 06:43:31
Docker 是一种基于 Linux 的容器化技术,类似于轻量的虚拟机。它采用 C/S 架构,使用Go语言开发。
Docker 分为 2 个版本:社区版(Community Edition, CE)和企业版(Enterprise Edition, EE),社区版免费,企业版是收费的。
针对 macOS 10.10.3 和 Windows 10,Docker 还推出了Docker DesktopDocker Desktop 又分为 2 个渠道(channel),稳定渠道(Stable)和抢先渠道(Edge),需要注意的是,Docker Desktop对系统是有要求的,例如,针对 Win10 的 Docker for Windows 因为要用到 Hyper-V 虚拟机,所以要求系统是 64 位专业版或企业版并开启 Hyper-V 功能。

安装Docker

本人使用Centos 8测试安装
> yum install docker-ce -y
启动 Docker
> systemctl start docker
关闭 Docker
> systemctl stop docker
重启Docker
> systemctl restart docker

使用Docker

1. 修改当前用户组

Docker命令默认需要root权限,也就是说每个指令需要sudo前缀,非常的麻烦。解决这个麻烦的方法是将当前用户加到docker用户组,具体方法是:
> groupadd docker
> usermod -aG docker ${USER}
之后要应用新的组,需要重新登陆服务器或者输入下面内容:
> su - ${USER}
这里需要你的登陆密码。之后,你可以通过下面方法来确认当前用户加入到了docker组:
> id -nG
确认当前用户已经加入到docker组.

2. Docker基本命令

Docker命令的基本语法组成为:
> docker [option] [command] [arguments]
输入docker回车可以列出所有的docker子命令,使用:
> docker docker-subcommand --help
可以获取子命令的帮助,使用docker info可以获取系统信息。

3. 使用Docker镜像工作

Docker容器从Docker镜像中工作,它默认从Docker hub拉取这些需要的镜像。运行Docker容器的大多数应用和linux的发行版所需要的镜像image都能在Docker hub找到。为了检查你是否能从Docker hub下载镜像,使用下面指令:
> docker run hello-world
成功运行后会看到一些欢迎信息,’Hello from Docker!…balabala’。使用docker和search子命令,可以搜索镜像,比如搜索Nginx镜像使用:
>  docker search nginx
可以看到Nginx镜像的搜索结果,然后当你确定了你想用的镜像的时候,使用pull子命令,例如:
> docker pull nginx
当镜像下载完成后,你可以使用下载好的镜像和run子命令来运行一个容器,如果镜像不存在,docker会先下载这个镜像:
> docker run nginx
要检查当前有那些镜像已经下载到了当前计算机上,使用:
> docker images
运行容器所使用的镜像可以被修改从而生成新的镜像,新的镜像可以上传或者说push到Docker hub上用来分享。

4. 运行Docker容器

之前的hello-world程序运行后就退出了,实际上,Docker容器还有更强大的功能,它们可以变得可交互,就像一台虚拟机一样,不过比虚拟机更加节省资源。
使用下面的指令可以使用Nginx镜像来运行容器,-i-t选项可以赋予你以交互式shell形式进入容器的权限:
> docker run -it nginx
然后你的shell提示符会反映出你现在正在容器中,它的形式是这样的:
root@d9b100f2f636:/#

5. 提交容器中的变化到Docker镜像

当你启用一个Docker镜像的时候,你可以像在虚拟机中一样创建,修改,删除文件,这些改动只会被保存在容器中。你可以启动或者停止它,但是一旦你使用docker rm命令摧毁它的时候,这些变化就会消失。那么如何将容器中的状态保存为镜像呢?
> exit
将这些变化提交到新的Docker镜像实例使用下面的命令:其中-m参数是记录了本次提交的备注信息,而-a参数用来定义作者,container-id是需要提交的容器的id,repository通常是你的Docker hub的用户名,除非你在Docker hub上创建了额外的仓库。
> docker commit -m "What did you do to the image" -a "Author Name" container-id repository/new_image_name
举一个具体的例子:
> docker commit -m "added nginx" -a "rumenz test" 123456 rumenz/rumenz-nginx
注意:这里提交的镜像只是保存在本地的镜像
当这个操作完成以后,使用docker images可以看到新的镜像已经被添加了进去。下一次需要运行Nginx容器的时候,就可以使用这个新的镜像了。除了这种方法,镜像还可以通过DockerFile来创建。

6. 列出Docker容器

当使用docker一段时间后,你就会有很多active和inactive的容器,使用下面的指令来列出所有active的容器:
> docker ps
如果要观察所有active和inactive的容器,则使用
> docker ps -a
如果要观察最近创建的容器,使用:
> docker ps -l
停止一个正在运行的active状态的容器使用命令:
> docker stop container-id
其中container-id可以通过docker ps命令来找到。

7.本地镜像推到Docker仓库

创建完的镜像当然想要分享给朋友,一个方法是通过上传或者说push到Docker Hub。要想push image首先需要在Docker hub注册账号。然后通过指令登陆Docker hub:
> docker login -u docker-registry-username
在根据提示输入完密码后,可以使用下面指令来push镜像:
> docker push docker-registry-username/docker-image-name
> docker push rumenz/rumenz-python3
然后等待push完成就可以在Docker hub上看见自己的image。

8. 使用Dockerfile

> docker build -t nginx:1.0  .

9. 容器与本地系统的关联

> docker run --name nginx-test -p 8080:80 -d nginx
  • --name nginx-test:容器名称。
  • -p 8080:80:端口进行映射,将本地 8080 端口映射到容器内部的 80 端口。
  • -d nginx:设置容器在在后台一直运行。
dockerdocker命令
本作品采用《CC 协议》,转载必须注明作者和本文链接
此漏洞/攻击取决于 Kubernetes 集群的配置方式。
Docker容器入门指北
2022-05-11 06:43:31
Docker 是一种基于 Linux 的容器化技术,类似于轻量的虚拟机。它采用 C/S 架构,使用Go语言开发。Docker 分为 2 个版本:社区版和企业版,社区版免费,企业版是收费的
1Docker 迁移存储目录默认情况系统会将 Docker 容器存放在 /var/lib/docker 目录下[问题起因]?今天通过监控系统,发现公司其中一台服务器的磁盘快慢,随即上去看了下,发现?由上述原因,我们都知道,在?中存储的都是相关于容器的存储,所以也不能随便的将其删除掉。设备进行扩容来达到相同的目的。的详细参数,请点击查看?但是需要注意的一点就是,尽量不要用软链, 因为一些?容器编排系统不支持这样做,比如我们所熟知的?发现容器启动不了了
如果您希望启动并运行一个强大的 ERP 解决方案,Jack Wallen 可以通过 Odoo 和 Docker 提供解决方案。
七个杀手级Docker命令
2023-12-22 15:19:58
Docker是一个容器化平台,通过操作系统级别的虚拟化技术,实现软件的打包和容器化运行。借助Docker,开发人员能够将应用程序以容器的形式进行部署,但在此之前需要构建Docker镜像。只要熟悉相关Docker命令,开发人员就能轻松完成所有这些步骤,从而实现应用程序的容器化部署。本文将根据使用场景对 Docker 命令进行分类介绍。1 构建 Docker 镜像构建 Docker 镜像需要使用 Do
首先,对Docker架构以及基本安全特性进行介绍,分析了Docker面临的安全威胁。由于Docker拥有轻量化、高效率和易部署的特点,目前已被广泛应用于云计算和微服务架构中。本文对Docker安全相关的研究思路、方法和工具进行比较和分析,并指出未来可能的研究方向。此外,Iptables的限制范围有限,容器网络仍然容易受到数据链路层攻击,如ARP欺骗等。
独立的Docker Swarm1.2.3以上版本。旧版本的Portainer支持独立Docker Swarm,而Portainer 1.17.0和更新版本不支持它。但是,对于一般需求,Portainer可能并不适合。此外,DockStation在Docker Hub上十分的受欢迎。未来,会重构成 Spring Cloud Alibaba 。
你是否还在大量控制台窗口中监控容器,还是对使用终端命令充满热情?而使用Docker的图形用户界面(GUI)工具,则可以更简单的对容器进行管理,并提高效率。而且它们都是免费的。
事先准备一台linux主机,并且已安装好docker环境。centos安装docker环境如下:查询可安装版本:
VSole
网络安全专家