接上文,我们在CentOS7上已经将docker相应的配置完毕,接下来进行Portainer的安装和运行配置操作
1.首先进行的是,对相应配件的安装操作
[root@localhost docker]# yum install -y yum-utils device-mapper-persistent-data lvm2
如图显示,则表示我们已经完成上述操作
已加载插件:fastestmirror, langpacks, product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager to register.
Loading mirror speeds from cached hostfile
* base: ftp.sjtu.edu.cn
* extras: ftp.sjtu.edu.cn
* updates: ftp.sjtu.edu.cn
软件包 yum-utils-1.1.31-54.el7_8.noarch 已安装并且是最新版本
软件包 device-mapper-persistent-data-0.8.5-2.el7.x86_64 已安装并且是最新版本
软件包 7:lvm2-2.02.186-7.el7_8.2.x86_64 已安装并且是最新版本
无须任何处理
2.添加软件源信息
[root@localhost docker]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
显示如下:
已加载插件:fastestmirror, langpacks, product-id, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager to register.
adding repo from: http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
grabbing file http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo to /etc/yum.repos.d/docker-ce.repo
repo saved to /etc/yum.repos.d/docker-ce.repo
3.重启docker的运作
[root@localhost docker]# systemctl stop docker
[root@localhost docker]# systemctl restart docker
[root@localhost docker]# systemctl enable docker
1.建立数据缓存
[root@localhost docker]# yum makecache fast
出现下图
已加载插件:fastestmirror, langpacks, product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager to register.
Loading mirror speeds from cached hostfile
* base: mirrors.neusoft.edu.cn
* extras: mirrors.neusoft.edu.cn
* updates: mirrors.aliyun.com
base | 3.6 kB 00:00:00
docker-ce-stable | 3.5 kB 00:00:00
extras | 2.9 kB 00:00:00
updates | 2.9 kB 00:00:00
元数据缓存已建立
2.拉取portainer镜像
[root@localhost docker]# docker pull portainer/portainer
出现下图
Using default tag: latest
latest: Pulling from portainer/portainer
d1e017099d17: Pull complete
717377b83d5c: Pull complete
Digest: sha256:f8c2b0a9ca640edf508a8a0830cf1963a1e0d2fd9936a64104b3f658e120b868
Status: Downloaded newer image for portainer/portainer:latest
docker.io/portainer/portainer:latest
3.查看镜像
使用命令
[root@localhost docker]# docker images
出现下图
REPOSITORY TAG IMAGE ID CREATED SIZE
portainer/portainer latest 62771b0b9b09 7 days ago 79.1MB
hello-world latest bf756fb1ae65 6 months ago 13.3kB
记下镜像ID:62771b0b9b09
每台机器的镜像ID不同!!!
4.运行下列指令:
注释:
-d 后台运行
–name 给容器起的名称
-p 端口映射
-v /var/run/docker.sock:/var/run/docker.sock
把宿主机的Docker守护进程(Docker daemon)默认监听的Unix域套接字挂载到容器中
-v /data/portainer_data:/data
把宿主机/data/portainer_data数据卷挂载到容器/data目录
10383f5b5720 镜像id
[root@localhost docker]# docker run -d --name portainer -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v /data/portainer_data:/data 62771b0b9b09
启动成功,系统输出容器id:163bab97f512f3f540c251bc14bb2370b88572a5a433f14b0c75efbe8a634148
portainer已启动成功,使用浏览器,输入http://localhost:9000、或者 http://ip:9000进行访问。由于是首次访问,所以需要预先设置用户密码:
在上述配置完毕之后,可视化UI Portainer竟然出现了无法打开页面的情况,我决定重新执行docker run -d -p 9000:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock --name portainer docker.io/portainer/portainer
,结果发现出现了Error response from daemon: Conflict. The container name "/portainer" is already in use by container
的错误
解决办法:
查看 docker ps -a
看到之前运行docker容器还没有退出,导致出现容器重名情况。
使用下面命令,删除容器
[root@localhost docker]# docker rm 163bab97f512
163bab97f512
[root@localhost docker]# docker rm 25d7a7f32eab
25d7a7f32eab
[root@localhost docker]# docker run -d -p 9000:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock --name portainer docker.io/portainer/portainer
7257d87dd80cd986c1a600259522d8462957d5e119c99f78e1e709549249da6d
或者执行重启(因为我前面已经命名portainer了)
[root@localhost docker]# docker restart portainer
访问http://localhost:9000/成功,输入密码跳转
1.如果你的docker主机在本地,选择local;
如在远端,则选择remote:在远端虚拟机中,环境变量name为docker环境的名称, Endpoint URL 为暴露在tcp上的带有API功能的Docker Host的ip或者域名地址。
2.单机版这里选择local即可,选择完毕,点击Connect即可连接到本地docker:
注意:从上图可以看出,有提示需要挂载本地 /var/run/docker.socker与容器内的/var/run/docker.socker连接。因此,在启动时必须指定该挂载文件。
3.点击 Connect即可连接,连接成功界面如下:
从此以后,就可以可视化操作docker了!!!
4.在此首页中,展示了所有已连接成功的Docker Host的信息,如container、stacks、volumes、images。可以点击docker host进入其仪表盘页面
5.Docker Host的仪表盘页面更为详细的展示了其container、stacks、volumes、images信息,均可点击进入其对应的管理页面,也可点击左侧菜单进入对应的管理页面,进行更详细的操作。如拉取image、运行新的container、设置container与docker host的volumes映射、网络设置等。
docker --help 帮助命令
docker images 查看本地镜像 参数-a 包含内层镜像
docker search tomact dockerhup 仓库中查找镜像
docker pull tomcat 版本 拉取镜像,注意!不加版本默认拉latest 最新版
docker rmi mysql 删除镜像,不指定版本,默认删除latest
docker rmi -f mysql nginx 删除多个镜像,不指定版本,默认删除latest
docker run 镜像 利用镜像模板创建一个docker容器并运行,本地没有镜像会去仓库拉取,并启动
docker run -it 镜像 以前台交互的方式运行,(返回一个带容器id的终端命令行,操作容器)
exit 退出 Ctrl p+q 回到宿主机不退出容器 重新进入容器 docker attach 容器id
docker run -d 镜像 以后台的方式运行,(如果没有命令可执行,会自动退出)
docker run -it -p 8888:8080 tomcat -p映射容器端口 8888 代表linux 本机的端口,映射到容器中tomcat的8080 大写P 是随机分配linux映射端口
docker commit -m=“提交信息” -a=“作者” 容器id 镜像名:标签版本 创建镜像
docker run -d -p 8081:8080 jenkins 每次都是生成一个新的容器=new ();
docker ps 查看docker 运行的容器
docker ps -l 查看上一个docker 运行的容器
docker ps -a 查看所有容器
docker start 容器id 启动容器
docker restart 镜像名 重新启动容器
docker stop 容器名,或者容器id 停止容器
docker kill 容器id 强制停止
docker rm id 删除已停止的容器 多删后面加空格然后容器id
docker rm -f id 强制删除正在运行的容器
docker inspect b45fe60408d0 查看容器信息
查看一个容器的详情 docker inspect 容器ID/容器别名
docker run -d --name jenkins -p 8081:8080 jenkins
docker exec -it 容器名称 /bin/bash 进入容器开启一个交互式终端 exit退出
使用-v命令添加数据卷 宿主机和容器sentos 建立连接 实现数据共享连接
docker run -it -v /sentosAA:/dockAA:ro 9f38484d220f /sentosAA宿主机路径 dockAA docker路径 9f38484d220f 镜像id ro只读,容器只可读(目录和冒号之间不能有空格,如果目录不存在会自动创建)
cat /var/jenkins_home/secrets/initialAdminPassword 查看jenkins初始密码