Docker篇(安装容器)

目录

一、安装mysql容器

1. 拉取mysql镜像

2. 创建并运行容器

二、安装Tomcat容器

1. 拉取镜像

2. 创建并运行容器

三、安装Nginx容器

1. 拉取镜像

2. 创建并运行容器

四、安装Redis容器

1. 拉取镜像

2. 创建并运行容器

五、安装RabbitMQ

1. 拉取镜像

2. 创建并运行容器

六、安装ActiveMQ

1. 拉取镜像

2. 创建并运行容器

七、安装Zookeeper

1. 拉取镜像

2. 创建并运行容器

八、安装Kafka

1. 拉取镜像

2. 创建并运行容器

九、安装Svn

第一步:拉取centos镜像

第二步:运行这个镜像

第三步:接下来我们要进入容器

第四步:进去之后,更新系统。

第五步:安装svn

十、安装Solr

第一步:启动docker

第二步:下拉solr镜像(推荐使用5.5.5版本)

第三步:安装solr(安装使用本机模式)

第四步:创建core

第五步:进入到solr容器

十一、安装Git

第一步: gitlab镜像拉取

第二步:运行gitlab镜像

第三步:配置

第四步:重启gitlab容器

第五步:创建一个项目

第六步:用户使用

1、下载git.exe

2、登录gitlab网页

3、设置ssh

4、从gitlab克隆代码

5、提交代码到gitlab

十二、安装Fastdfs

1. 拉取镜像

2. 创建并启动 tracker 容器

3. 创建并启动 storage 容器

4. 客户端测试

查看文件存储的目录

十三、安装elasticsearch

第一步:拉取elasticsearch的镜像

第二步:启动elasticsearch的实例

第三步:配置远程访问

第四步:启动 mobz/elasticsearch-head:5

十四、安装Nacos

步骤一:确保安装Docker

步骤二:拉取Nacos的Docker镜像

步骤三:运行 Nacos 容器

步骤四:检查容器状态

步骤五:访问Nacos

十五、安装Portainer

1. 搜索 Portainer 相关镜像

2. 运行镜像

本机模式

远程模式

3. 访问Portainer容器

4. 问题

5. 查看各种操作系统相关信息

5.1. Linux查看当前操作系统版本信息

5.2. Linux查看版本当前操作系统内核信息

5.3. linux查 看版本当前操作系统发行信息

5.4. Linux查看cpu相关信息


一、安装mysql容器

1. 拉取mysql镜像

docker pull centos/mysql-57-centos7   
docker pull mysql

2. 创建并运行容器

> docker run -di --name=tensquare_mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=zhengge  centos/mysql-57-centos7 
# 或者
> docker run -di --name=tensquare_mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=zhengge mysql 启动成功日志
d81df2492094  centos/mysql-57-centos7   "container-entrypoin…"   6 seconds ago Up 5 seconds                  0.0.0.0:33306->3306/tcp   mymysql# 查看日志
docker logs -f mymysql

p 代表端口映射,格式为 宿主机映射端口:容器运行端口

-e 代表添加环境变量 MYSQL_ROOT_PASSWORD 是root用户的登陆密码

(3)远程登录mysql

连接宿主机的IP ,指定端口为33306

二、安装Tomcat容器

1. 拉取镜像

docker pull tomcat:7-jre7

2. 创建并运行容器

创建容器 -p表示地址映射

docker run -di --name=mytomcat -p 9000:8080 tomcat:7-jre7    
docker run -di --name=mytomcat -p 9000:8080 -v /usr/local/webapps:/usr/local/tomcat/webapps tomcat:7-jre7   

如果需要同时启动多个tomcat。那么需要去修改server.xml文件

# 创建tomcat容器实例
> docker run -di --name=mytomcat2 -p 9100:8081 tomcat:7-jre7
# 进入容器目录
> docker exec -it 容器ID /bin/bash
# 切换到conf目录,修改server.xml
> cd /conf
> vim server.xml
# 查看日志
docker logs -f mytomcat2

三、安装Nginx容器

1. 拉取镜像

docker pull nginx

2. 创建并运行容器

docker run -di --name=mynginx -p 80:80 nginx   # 查看日志
docker logs -f mynginx

四、安装Redis容器

1. 拉取镜像

docker pull redis   

2. 创建并运行容器

docker run -di --name=myredis -p 6379:6379 redis

在window操作系统中,找一个redis客户端进行测试。执行如下命令

redis-cli.exe -h 192.168.189.139 -p 6379# 查看日志
docker logs -f myredis

五、安装RabbitMQ

1. 拉取镜像

docker pull rabbitmq:management

2. 创建并运行容器

docker run -di --name=myrabbit -p 15672:15672 rabbitmq:management
--hostname:指定容器主机名称
--name:指定容器名称
-p:将mq端口号映射到本地或在运行时设置用户和密码
docker run -di --name=myrabbit -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin -p 15672:15672 -p 5672:5672  rabbitmq:management15672:控制台端口号5672:应用访问端口号# 查看日志
docker logs -f myrabbit

容器运行正常

使用 http://127.0.0.1:15672 访问rabbit控制台

六、安装ActiveMQ

1. 拉取镜像

8161是后台管理系统,61616是给java用的tcp端口

# 搜索镜像
> docker search activemq
# 拉取镜像
> docker pull webcenter/activemq 

2. 创建并运行容器

# 创建activemq的容器
> docker run -di --name myactivemq -p 8161:8161 -p 61616:61616 webcenter/activemq
# 访问http://192.168.189.139:8161 (默认账号和密码是:admin/admin)# 查看日志
docker logs -f myactivemq

七、安装Zookeeper

1. 拉取镜像

默认端口:2888

# 镜像下载
docker pull zookeeper

2. 创建并运行容器

# 启动 ZK 镜像
docker run -di --name my_zookeeper -p 2888: zookeeper:latest
# 使用 ZK 命令行客户端连接 ZK
docker run -it --rm --link my_zookeeper:zookeeper zookeeper zkCli.sh -server zookeeper

这个命令会在后台运行一个 zookeeper 容器, 名字是 my_zookeeper, 并且它默认会导出 2181 端口.

接着我们使用:

docker logs -f my_zookeeper

八、安装Kafka

1. 拉取镜像

> docker pull wurstmeister/zookeeper
> docker pull wurstmeister/kafka

2. 创建并运行容器

> docker run -d --name zookeeper -p 2181:2181 -t wurstmeister/zookeeper
> docker run -di --name kafka -e KAFKA_ADVERTISED_PORT=9092 -e KAFKA_BROKER_ID=1 -e ZK=zk -e KAFKA_ZOOKEEPER_CONNECT=192.168.189.139:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.189.139:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -p 9092 --link zookeeper:zk -t wurstmeister/kafka

测试发送消息

# 执行docker ps,找到kafka的CONTAINER ID,进入容器内部:
> docker exec -it ${CONTAINER ID} /bin/bash # 进入kafka默认目录
> cd opt/kafka_2.11-0.10.1.1/ #下面就是跟一般的kafka没什么区别了
#创建一个主题:
> bin/kafka-topics.sh --create --zookeeper zookeeper:2181 --replication-factor 1 --partitions 1 --topic mykafka# 运行一个消息生产者,指定topic为刚刚创建的主题
> bin/kafka-console-producer.sh --broker-list localhost:9092 --topic mykafka

九、安装Svn

第一步:拉取centos镜像

docker pull daocloud.io/library/centos:7

第二步:运行这个镜像

docker run --name svn --hostname svnserver -it -p 3691:3690 -d daocloud.io/library/centos:7

这里需要注意:

  1. svn的默认端口是3690,我们在这里把他映射为宿主服务器的3691;
  2. -it这个参数是必须要加的,以前运行了很多镜像,都可以不加这个参数,所以失败了很多次,一直都怀疑是镜像问题。
  3. --hostname是强迫症。

第三步:接下来我们要进入容器

docker exec -it svn /bin/bash

第四步:进去之后,更新系统。

yum update

更新系统是我的习惯,我总是喜欢最新的系统状态。强迫症。

第五步:安装svn

yum install subversion

下来该创建文件夹了。我把文件夹放在home下面。

> cd /home
> mkdir svn
# 然后创建一个库。
> svnadmin create /home/svn/repo/
# 这里的repo就是我的版本库了。在这个库里面可以看到很多东西,不截图了。
> cd /home/svn/repo
> ll
# 进入conf文件夹,可以少打几个字母。
> cd conf

接下来的三步很重要:

1:修改配置文件

vi /home/svn/repo/conf/svnserve.conf

打全路径是便于识别,后面就不用了,都在这个文件夹下。

这里主要把几个注释掉的参数释放出来。

anon-access = none                #控制非鉴权用户访问版本库的权限
auth-access = write                 #控制鉴权用户访问版本库的权限
password-db = passwd           #指定用户名口令文件名
authz-db = authz                     #指定权限配置文件名

修改完保存退出。

2:添加设置用户和密码

vi /home/svn/repo/conf/passwd

主要在[users]下面设置用户名和密码。

[users]
# harry = harryssecret
# sally = sallyssecret
chris = 123456
kaly = 123456
alice = 123456

前面是用户名,后面是密码。然后保存退出。

3:最后修改权限设置。

先分组,在[groups]下面做分组设置。

[groups]
# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joe
admin = kaly
user = alice
java = chris,kaly
再在后面对分组设置权限r为可读,w为可写。# [repository:/baz/fuz]
# @harry_and_sally = rw
# * = r
[repo:/]
@admin = rw
@user = r
@java = rw
* =

repo是我创建的库,我只在这里对根目录进行权限分配。如果还在在这里建立子库,则添加节点分配权限。

后面的* = 是将除上面配置以外的用户权限设置为全面禁止。没有做测试。

4:设置完成了,运行svn。

svnserve -d -r /home/svn/

5:在宿主系统(我这里还是centos7)中测试一下。

> svn co svn://39.108.186.86:3691/repoAuthentication realm: <svn://192.168.189.140:3691> 09ad8e9b-dffa-4466-9cbe-a4bdd73bbcf2
Password for 'root': 
Authentication realm: <svn://192.168.189.140:3691> 09ad8e9b-dffa-4466-9cbe-a4bdd73bbcf2
Username: keke 输入账号
Password for 'keke':  输入密码-----------------------------------------------------------------------
ATTENTION!  Your password for authentication realm:<svn://192.168.189.140:3691> 09ad8e9b-dffa-4466-9cbe-a4bdd73bbcf2can only be stored to disk unencrypted!  You are advised to configure
your system so that Subversion can store passwords encrypted, if
possible.  See the documentation for details.You can avoid future appearances of this warning by setting the value
of the 'store-plaintext-passwords' option to either 'yes' or 'no' in
'/root/.subversion/servers'.
-----------------------------------------------------------------------
Store password unencrypted (yes/no)? yes
Checked out revision 0. 连接成功!

6:使用客户端工具idea或者eclipse或者 TortoiseSVN测试即可。

svn://39.108.186.86:3691/repo

十、安装Solr

第一步:启动docker

systemctl start docker

第二步:下拉solr镜像(推荐使用5.5.5版本)

docker pull solr:5.5.5

第三步:安装solr(安装使用本机模式)

docker run --name my_solr -id --net host -t solr:5.5.5

第四步:创建core

docker exec -it --user=solr my_solr bin/solr create_core -c mycore

创建成功后会可看到的提示

Copying configuration to new core instance directory:
/opt/solr/server/solr/mycore(表示创建的json存在磁盘哪个位置)Creating new core 'mycore' using command:
http://localhost:8983/solr/admin/cores?action=CREATE&name=mycore&instanceDir=mycore{"responseHeader":{
"status":0,(表示创建核的状态0表示成功)
"QTime":2530},(表示创建时使用的时间(单位:毫秒))
"core":"mycore"}(表示创建后你核的名字}

第五步:进入到solr容器

docker  exec -it  my_solr bash

创建成功后输入你的ip地址+加solr在网页上输出

剩余的IK分词器的集成参考:docker集成solr_solr dock-CSDN博客

或者参考前面讲解的solr篇,进行修改。

十一、安装Git

第一步: gitlab镜像拉取

# gitlab-ce为稳定版本,后面不填写版本则默认pull最新latest版本
docker pull gitlab/gitlab-ce

第二步:运行gitlab镜像

$ docker run -d  -p 443:443 -p 80:80 -p 222:22 --name gitlab --restart always -v /home/gitlab/config:/etc/gitlab -v /home/gitlab/logs:/var/log/gitlab -v /home/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce
# -d:后台运行
# -p:将容器内部端口向外映射
# --name:命名容器名称
# -v:将容器内数据文件夹或者日志、配置等文件夹挂载到宿主机指定目录

运行成功后出现一串字符串

第三步:配置

按上面的方式,gitlab容器运行没问题,但在gitlab上创建项目的时候,

生成项目的URL访问地址是按容器的hostname来生成的,也就是容器的id。

作为gitlab服务器,我们需要一个固定的URL访问地址,于是需要配置gitlab.rb

(宿主机路径:/home/gitlab/config/gitlab.rb)。

# gitlab.rb文件内容默认全是注释
$ vim /home/gitlab/config/gitlab.rb
# 配置http协议所使用的访问地址,不加端口号默认为80
external_url 'http://192.168.199.231'# 配置ssh协议所使用的访问地址和端口
gitlab_rails['gitlab_ssh_host'] = '192.168.199.231'
gitlab_rails['gitlab_shell_ssh_port'] = 222 # 此端口是run时22端口映射的222端口
:wq #保存配置文件并退出

第四步:重启gitlab容器

# 重启gitlab容器
$ docker restart gitlab

此时项目的仓库地址就变了。如果ssh端口地址不是默认的22,就会加上ssh:// 协议头。

打开浏览器输入ip地址(因为我的gitlab端口为80,所以浏览器url不用输入端口号,如果端口号不是80,则打开

为:ip:端口号)

第五步:创建一个项目

第一次进入要输入新的root用户密码,设置好之后确定就行,访问:http://192.168.189.141

初次访问可能时间会有点久,请耐心等待即可== 也可以通过:docker logs gitlab 查看

下面我们就可以新建一个项目了,点击Create a project

Create a project

创建完成后:

创建完成!

第六步:用户使用

1、下载git.exe

双击git.exe安装git(一直点下一步,直到完成)

点击电脑桌面空白地方右键看到如下两行即安装成功

2、登录gitlab网页

url:http://192.168.1.111

填写账号密码登录

登录页面

3、设置ssh

1、打开本地git bash,使用如下命令生成ssh公钥和私钥对

$ ssh-keygen -t rsa -C 'xxx@xxx.com'

然后一路回车(-C 参数是你的邮箱地址)

生成密匙

2、然后输入命令:

# ~表示用户目录,比如我的windows就是C:\Users\Administrator,并复制其中的内容
$ cat ~/.ssh/id_rsa.pub

公匙

3、打开gitlab,找到Profile Settings-->SSH Keys--->Add SSH Key,并把上一步中复制的内容粘贴到Key所对应的

文本框

添加公匙到gitlab

4、从gitlab克隆代码

1、回到gitlab页面点击projects->your projects

2、选择一个需要克隆的项目,进入

我的项目页面

3、点击按钮复制地址

复制ssh地址

4、新建一个文件夹,我在这里在我的电脑D盘下新建project文件夹

5、进入projects文件夹右键选择->Git Bash Here

点击Git Bash Here

6、设置用户名和邮箱

$ git config --global user.name "你的名字"
$ git config --global user.email "你的邮箱"

设置名字和邮箱

7、克隆项目

$ git clone 项目地址

克隆项目

8、查看projects文件夹,项目已经克隆下来了

项目目录

5、提交代码到gitlab

1、基于以上步骤,在克隆的项目文件夹下新增一个测试文件

新增txt文件

2、查看同步状态

在项目文件夹下右键点击->Git Bash Here

输入

$ git status

状态

可以看到红色部分有需要提交的文件

3、提交代码

输入

$ git add  测试提交的文件.txt

(“git add“后加“.”则添加全部文件,也可以加"*.txt"表示添加全部需要提交的txt文件 )

add需要提交的文件

然后输入以下命令提交并添加提交信息

$ git commit -m "message"

commit

最后输出以下命令提交到gitlab

$ git push origin master

push

提交完成啦

再回到gitlab上看该项目就可以看到多了一个txt测试文件

十二、安装Fastdfs

1. 拉取镜像

docker pull morunchang/fastdfs

2. 创建并启动 tracker 容器

docker run -d --name=tracker -v /home/fastdfs_docker/fdfs/tracker:/data/fast_data --privileged=true --net=host morunchang/fastdfs sh tracker.sh

3. 创建并启动 storage 容器

创建并启动storage容器,此处只做单机版测试

注意:由于 tracker 容器使用 host 网络模式、与宿主公用 network namespace, 因此 tracker 容器 ip 与宿主机

ip 一致

docker run -d --name=storage -v /home/fastdfs_docker/fdfs/storage_data:/data/fast_data --privileged=true --net=host -e TRACKER_IP=192.168.189.141:22122 -e GROUP_NAME=group1 morunchang/fastdfs sh storage.sh

4. 客户端测试

1、创建maven测试工程 pom.xml

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><!--<scope>test</scope>-->
</dependency><!-- https://mvnrepository.com/artifact/net.oschina.zcx7878/fastdfs-client-java -->
<dependency><groupId>net.oschina.zcx7878</groupId><artifactId>fastdfs-client-java</artifactId><version>1.27.0.0</version></dependency><!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
<dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.6</version></dependency>

2、在classpath:config下创建fastdfs-client.properties文件

#http连接超时时间
fastdfs.connect_timeout_in_seconds = 5  
#tracker 与 storage 通信连接超时时间
fastdfs.network_timeout_in_seconds = 60 
#字符编码
fastdfs.charset = UTF-8 
#tracker_server_ip
fastdfs.tracker_servers = 192.168.189.141:22122 

3、上传文件测试,下载,查看文件信息

package com.zheng.travel.fastdfsdemo;import org.csource.common.NameValuePair;
import org.csource.fastdfs.*;
import org.junit.Test;import java.io.File;
import java.io.FileOutputStream;public class UploadController {/*** 上传文件* @throws Exception*/@Testpublic void testUpload() throws Exception{ClientGlobal.initByProperties("fastdfs-client.properties");System.out.println("network_timeout=" + ClientGlobal.g_network_timeout + "ms");System.out.println("charset=" + ClientGlobal.g_charset);//创建客户端TrackerClient tc = new TrackerClient();//连接tracker ServerTrackerServer ts = tc.getConnection();if (ts == null) {System.out.println("getConnection return null");return;}//获取一个storage serverStorageServer ss = tc.getStoreStorage(ts);if (ss == null) {System.out.println("getStoreStorage return null");}//创建一个storage存储客户端StorageClient1 sc1 = new StorageClient1(ts, ss);NameValuePair[] meta_list = null; //new NameValuePair[0];String item = "D:\\1.png";String fileid;fileid = sc1.upload_file1(item, "png", meta_list);System.out.println("Upload local file " + item + " ok, fileid=" + fileid);}/*** 查询文件* @throws Exception*/@Testpublic void testQueryFile() throws Exception{ClientGlobal.initByProperties("fastdfs-client.properties");TrackerClient tracker = new TrackerClient();TrackerServer trackerServer = tracker.getConnection();StorageServer storageServer = null;StorageClient storageClient = new StorageClient(trackerServer,storageServer);FileInfo fileInfo = storageClient.query_file_info("group1","M00/00/00/wKi9jVzOoeqAHK1TAACYbHFtmWA582.png");System.out.println(fileInfo);}/*** 下载文件*/@Testpublic void testDownloadFile() throws Exception {ClientGlobal.initByProperties("fastdfs-client.properties");TrackerClient tracker = new TrackerClient();TrackerServer trackerServer = tracker.getConnection();StorageServer storageServer = null;StorageClient1 storageClient1 = new StorageClient1(trackerServer,storageServer);byte[] result = storageClient1.download_file1("group1/M00/00/00/wKi9jVzOoeqAHK1TAACYbHFtmWA582.png");File file = new File("d:/12.png");FileOutputStream fileOutputStream = new FileOutputStream(file);fileOutputStream.write(result);fileOutputStream.close();}}

查看文件存储的目录

第一步:进入到fastdfs系统

# 进入fastdfs文件系统
docker exec -it cd9036354185 /bin/bash

第二步:查看文件系统存储的目录

最终文件存放在:/data/fast_data/data/00/00

十三、安装elasticsearch

第一步:拉取elasticsearch的镜像

docker pull docker.elastic.co/elasticsearch/elasticsearch:6.7.1

或者使用Dockerfile

https://docs.docker.com/samples/library/elasticsearch/

#Elasticsearch 6.7.1# This image re-bundles the Docker image from the upstream provider, Elastic. 
FROM docker.elastic.co/elasticsearch/elasticsearch:6.7.1@sha256:4b945a65ffef04f317bba80dadb6557c3aa3a124e5b6c1ec65b53dde77846527# The upstream image was built by:
#   https://github.com/elastic/dockerfiles/tree/v6.7.1/elasticsearch# For a full list of supported images and tags visit https://www.docker.elastic.co# For Elasticsearch documentation visit https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html# See https://github.com/docker-library/official-images/pull/4916 for more details.
docker build --tag=es6.7.1 .

意义是一样的。

第二步:启动elasticsearch的实例

docker run -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:6.7.1

然后访问 http://192.168.189.141:9200

{"name" : "KUuxI31","cluster_name" : "docker-cluster","cluster_uuid" : "O-2OQTGQTt6Xxpufi3CjHw","version" : {"number" : "6.7.1","build_flavor" : "default","build_type" : "docker","build_hash" : "2f32220","build_date" : "2019-04-02T15:59:27.961366Z","build_snapshot" : false,"lucene_version" : "7.7.0","minimum_wire_compatibility_version" : "5.6.0","minimum_index_compatibility_version" : "5.0.0"},"tagline" : "You Know, for Search"
}

第三步:配置远程访问

# 查看容器列表
> docker ps -a
# 进入elasticsearch容器
> docker exec -it elasticsearch容器ID /bin/bash
> ls
# 进入到config目录
> cd config
# vi ES配置文件elasticsearch.yml加入2个参数,并重启
# (没有vi apt-get update 然后 apt-get install -y vim)
http.cors.enabled: true
http.cors.allow-origin: "*"
# 重启容器
> docker restart 容器名/ID 
# 重启docker(不用执行)
> systemctl  restart docker
# 查看启动日记
> docker logs 容器ID/名称

第四步:启动 mobz/elasticsearch-head:5

docker pull mobz/elasticsearch-head:5
docker run -di --name='eshead' -p 9100:9100 docker.io/mobz/elasticsearch-head:5
然后打开浏览器: 192.168.189.141:9100 填入ES地址

十四、安装Nacos

Docker 安装Nacos

Docker 安装 Nacos 的步骤如下:

步骤一:确保安装Docker

首先,确保你已经安装了 Docker。如果没有安装,请先安装 Docker。

步骤二:拉取Nacos的Docker镜像

打开终端或命令提示符,并执行以下命令来拉取 Nacos 的 Docker 镜像:

docker pull nacos/nacos-server 

步骤三:运行 Nacos 容器

下载完成后,执行以下命令来创建并运行 Nacos 容器:

docker run --name nacos -p 8848:8848 -d nacos/nacos-server 

这将创建一个名为 "nacos" 的容器,并将容器的 8848 端口映射到主机的 8848 端口。

步骤四:检查容器状态

等待一段时间,直到容器启动完成。你可以使用以下命令来检查容器的状态:

docker ps 

如果容器的状态为 "Up",则表示 Nacos 已经成功安装并运行。

步骤五:访问Nacos

现在,你可以通过访问 http://121.40.151.95:8848/nacos 来访问 Nacos 的管理界面。

十五、安装Portainer

1. 搜索 Portainer 相关镜像

搜索 Portainer 相关镜像,以免错过更好的第三方镜像

docker search portainer

下载选定的Portainer镜像,这里我们选择下载量最多的官方镜像,如果未指定版本则默认为最新版本,latest版本

docker pull portainer/portainer

2. 运行镜像

本机模式

docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock --restart=always --name prtainer portainer/portainer

远程模式

docker run -d -p 9000:9000 --restart=always --name prtainer portainer/portainer

3. 访问Portainer容器

访问Portainer容器:http://IP:9000

  • 首次登录需要设置admin的密码
  • 选择docker连接
    • 选择Local,代表本地模式,portainer仅管理本机的docker容器
    • 选择Remote,代表远程模式,名称随意,在Endpoint URL中填写docker节点的地址:docker远程端口(docker安装教程中的设置的-H 0.0.0.0:2375中的2375)

如果是云服务器,记得在服务器开发9000的端口,方可访问。

4. 问题

bash: vim: command not found

在使用docker时,有时候我们需要编辑配置文件,需要使用vim或者vi命令,但是会发现:

bash: vi: command not found

这是因为vim没有安装,使用如下命令安装:

apt-get install vim

一般而言,又会出现如下问题:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package vim

此时需要:

root@76eb8d6dea73:~# apt-get update

然后再:

apt-get install vim

5. 查看各种操作系统相关信息

5.1. Linux查看当前操作系统版本信息

cat /proc/version
Linux version 2.6.32-696.el6.x86_64 (mockbuild@c1bm.rdu2.centos.org) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-18) (GCC) ) #1 SMP Tue Mar 21 19:29:05 UTC 2017

5.2. Linux查看版本当前操作系统内核信息

uname -a
Linux localhost.localdomain 2.4.20-8 #1 Thu Mar 13 17:54:28 EST 2003 i686 athlon i386 GNU/Linux

5.3. linux查 看版本当前操作系统发行信息

cat /etc/issue

或者

cat /etc/centos-release
CentOS release 6.9 (Final)

5.4. Linux查看cpu相关信息

Linux查看cpu相关信息,包括型号、主频、内核信息等

cat /etc/cpuinfo

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/159.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

App Inventor 2 列表显示框能否实现多选?

Q&#xff1a;列表显示框有没有办法做到多选的功能&#xff1f; // 问题分析 // AppInventor2列表显示框原生并没有多选功能&#xff0c;只能点击其中一项&#xff0c;然后触发“选择完成时”这个事件&#xff0c;那么有没有办法做到多选呢&#xff1f; // 问题思路 // 经过…

PropTypes 和 TypeScript 在 React 中的比较

文章目录 引言PropTypes什么是 PropTypes&#xff1f;如何使用 PropTypes优点缺点 TypeScript什么是 TypeScript&#xff1f;如何使用 TypeScript优点缺点 选择建议总结 引言 在 React 开发中&#xff0c;组件的可复用性和可维护性至关重要。为了确保组件接收到正确的 props&a…

进程间通信(命名管道 共享内存)

文章目录 命名管道原理命令创建命名管道函数创建命名管道 共享内存原理shmgetFIOK 代码应用&#xff1a;premsnattch 命名管道 用于两个毫无关系的进程间的通信。 原理 Linux文件的路径是多叉树&#xff0c;故文件的路径是唯一的。 让内核缓冲区不用刷新到磁盘中&#xff0c…

计算机毕业设计Hadoop+大模型旅游推荐系统 旅游景点推荐 旅游可视化 旅游爬虫 景区客流量预测 旅游大数据 大数据毕业设计

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 开题报告 设计&#xff08…

一般无人机和FPV无人机的区别

文章目录 一般无人机的工作原理关键组件&#xff1a;一般无人机的应用领域一般无人机的操控体验 FPV无人机的工作原理关键组件&#xff1a;FPV无人机的应用领域FPV无人机的操控体验性能特点FPV无人机的性能特点 未来无人机发展方向和通信方式拓展 一般无人机的工作原理 一般无…

react基础之redux快速上手环境准备

文章目录 核心概念配置基础环境提交action传参异步状态操作redux调试-devtools配套工具 Redux 是一个状态管理库&#xff0c;通常与 React 一起使用&#xff0c;帮助开发者管理应用的全局状态。它的核心理念是将应用的状态存储在一个单一的、不可变的状态树中&#xff0c;并通过…

OAuth2.0 动态注册客户端

什么是 OAuth 2.0 客户端自动注册&#xff1f; OAuth 2.0 客户端注册通常是在授权服务器的管理界面或通过静态配置文件手动完成的。客户端自动注册是指应用在启动或运行过程中通过代码与 OAuth 2.0 授权服务器交互&#xff0c;自动注册并获取 client_id 和 client_secret 等必…

启纬科技发布6色无源电子纸手机壳InkaceE6

杭州启纬科技有限公司投稿:无源NFC技术的开创者和领导者,杭州启纬科技有限公司于北京时间2024年10月28号正式发布了面向iOS系统和安卓/鸿蒙系统的6色无源电子纸手机壳---InkaceE6系列产品及配套方案。 图1:手机壳高清图 图2:6色与3色、4色效果对比图,海边美女 启纬…

鸿蒙生态下开发挑战-鸿蒙低代码开发工具展望及优势

鸿蒙生态下开发挑战 在鸿蒙生态下开发时&#xff0c;开发者可能会遇到多方面的挑战&#xff0c;这些挑战主要涉及开发工具、技术难度、生态竞争以及市场定位等方面。以下是对这些挑战的详细分析&#xff1a; 一、开发工具不完善 尽管鸿蒙系统的开发工具DevEco Studio在逐步完…

CSS 超出一行省略号...,适用于纯数字、中英文

文本超出显示省略号... 代码&#xff1a; .ellipsis{ overflow: hidden; -webkit-line-clamp:1; text-overflow: ellipsis; display: -webkit-box; -webkit-box-orient: vertical; word-break: break-all; /** 纯数字、中英文都适用 */ }

vscode markdown-image 图片粘贴自动上传到本地目录设置

.vscode/settings.json文件内容 {"markdown-image.base.fileNameFormat": "${hash}-${YY}${MM}${DD}-${HH}${mm}${ss}","markdown-image.local.path": "./images","markdown-image.base.uploadMethod": "Local",…

java设计模式之结构型模式(7种)

结构型模式 描述如何将类或者对象按某种布局组成更大的结构。它分为结构型模式和对象结构型模式&#xff0c;前者采用继承机制来组织接口和类&#xff0c;后者通过组合或聚合来组合对象。 分为7种&#xff1a;代理模式、适配器模式、装饰者模式、桥接模式、外观模式、组合模式、…

Java序列化与反序列化

文章目录 一、Java序列化和反序列化1、序列化和反序列化的含义和用途序列化主要使用场景反序列化漏洞出现的原因 下一期 一、Java序列化和反序列化 1、序列化和反序列化的含义和用途 Java对象&#xff08;存在于内存&#xff09;———序列化——>>字符串/二进制流&…

Vue computed watch

computed watch watch current prev

基于Spring Boot+Vue的助农销售平台(协同过滤算法、限流算法、支付宝沙盒支付、实时聊天、图形化分析)

&#x1f388;系统亮点&#xff1a;协同过滤算法、节流算法、支付宝沙盒支付、图形化分析、实时聊天&#xff1b; 一.系统开发工具与环境搭建 1.系统设计开发工具 后端使用Java编程语言的Spring boot框架 项目架构&#xff1a;B/S架构 运行环境&#xff1a;win10/win11、jdk1…

GetX的一些高级API

目录 前言 一、一些常用的API 二、局部状态组件 1.可选的全局设置和手动配置 2.局部状态组件 1.ValueBuilder 1.特点 2.基本用法 2.ObxValue 1.特点 2.基本用法 前言 这篇文章主要讲解GetX的一些高级API和一些有用的小组件。 一、一些常用的API GetX提供了一些高级…

第三届北京国际水利科技博览会将于25年3月在国家会议中心召开

由中国农业节水和农村供水技术协会、北京水利学会、振威国际会展集团等单位联合主办的第三届北京国际水利科技博览会暨供水技术与设备展&#xff08;北京水利展&#xff09;将于2025年3月31日至4月2日在北京•国家会议中心举办&#xff01; 博览会以“新制造、新服务、新业态”…

基于SpringBoot的学生读书笔记共享的设计与实现

一、项目背景 计算机的普及和互联网时代的到来使信息的发布和传播更加方便快捷。用户可以通过计算机上的浏览器访问多个应用系统&#xff0c;从中获取一些可以满足用户需求的管理系统。网站系统有时更像是一个大型“展示平台”&#xff0c;用户可以选择所需的信息进入系统查看…

org.springframework.boot:type=Admin,name=SpringApplication异常

org.springframework.boot:typeAdmin,nameSpringApplication异常 问题&#xff1a;更换最新版本idea之后&#xff0c;启动springboot项目报错 javax.management.InstanceNotFoundException: org.springframework.boot:typeAdmin,nameSpringApplication idea自动默认的启动设…

Netty核心源码与优化

1.Netty的优化 1.1 使用EventLoop的任务调度 直接使用 channel.writeAndFlush(data) 可能会导致线程切换&#xff0c;这是因为如果当前线程并不是该 Channel 所绑定的 EventLoop 线程&#xff0c;那么 writeAndFlush() 操作会将任务重新提交给关联的 EventLoop 线程执行&#…