个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~
个人主页:.29.的博客
学习社区:进去逛一逛~
通过Docker拉取portainer
:
# 拉取
docker pull portainer/portainer
# 查看拉取到的镜像
docker images
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/portainer/portainer latest 5f11582196a4 15 months ago 287 MB
安装和启动Docker拉取下来的镜像
:
docker run -d --restart=always --name portainer -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock --privileged=true portainer/portainer
- docker run :创建并运行一个容器
- -d:后台运行容器
- –name : 给容器起一个名字,这里叫portainer
- -p :将宿主机端口与容器端口映射,冒号左侧是宿主机端口,右侧是容器端口
- -v /var/run/docker.sock:/var/run/docker.sock:把宿主机的Docker守护进程(Docker daemon)默认监听的Unix域套接字挂载到容器中
- portainer/portainer:镜像名称就是portainer/portainer
- privileged=true使用该参数,container内的root拥有真正的root权限。不添加可能导致portainer无法识别本地docker容器
浏览器访问portainer
:
# 首先开放端口,不开放端口请求会被防火墙拦截导致无法访问(portainer镜像使用的端口在上文设置为9000)
firewall-cmd --zone=public --add-port=9000/tcp --permanent
访问链接:http://192.168.88.131:9000/
你访问不了的,因为需要访问你自己虚拟机的ip地址
真正的访问链接:http://[你的虚拟机ip地址]:9000/
需要重启一下:
docker restart portainer
Docker中有几个重要的概念:
镜像(Image):Docker将应用程序及其所需的依赖、函数库、环境、配置等文件打包在一起,称为镜像。
容器(Container):镜像中的应用程序运行后形成的进程就是容器,只是Docker会给容器进程做隔离,对外不可见。
一切应用最终都是代码组成,都是硬盘中的一个个的字节形成的文件。只有运行时,才会加载到内存,形成进程。
而镜像,就是把一个应用在硬盘上的文件、及其运行环境、部分系统函数库文件一起打包形成的文件包。这个文件包是只读的。
容器呢,就是将这些文件中编写的程序、函数加载到内存中允许,形成进程,只不过要隔离起来。因此一个镜像可以启动多次,形成多个容器进程。
我们要使用Docker来操作镜像、容器,就必须要安装Docker。
Docker是一个CS架构的程序,由两部分组成:
服务端(server):Docker守护进程,负责处理Docker指令,管理镜像、容器等
客户端(client):通过命令或RestAPI向Docker服务端发送指令。可以在本地或远程向服务端发送指令。