【Docker技术实践】02-Docker服务操作实践

Docker服务基本操作实践

在这里插入图片描述

查找Docker的所在的资源路径

不属于docker指令

whereis docker

查看Docker运行状态

查看docker是否启动了,是否是运行状态。

systemctl status docker

在这里插入图片描述

启动Docker服务

systemctl start docker

设置开机自启

systemctl enable docker

重新启动服务

systemctl restart docker

重启docker后,默认docker中启动的容器会关闭退出。所以需要先设置好容器开机自启。

查看Docker信息

docker info

查看docker info中具体key的信息,例如:

docker info | grep 'Docker Root Dir:'

停止Docker服务

systemlctl stop docker

Docker镜像加速

由于国内网络问题,需要配置加速器来加速。修改配置文件 /etc/docker/daemon.json

下面命令直接生成文件 daemon.json

cat <<EOF > /etc/docker/daemon.json
{"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn","http://hub-mirror.c.163.com"],"max-concurrent-downloads": 10,"log-driver": "json-file","log-level": "warn","log-opts": {"max-size": "10m","max-file": "3"},"data-root": "/var/lib/docker"
}
EOF

在这里插入图片描述

说明:在执行如上指令时,保证你的登录用户为root管理员用户。

Docker镜像操作实践

镜像文件就是容器中的APP,启动镜像文件=启动容器

下载镜像

语法:docker pull 镜像名案例:docker pull hello-world

在这里插入图片描述

浏览镜像文件

docker images

在这里插入图片描述
这里查看的镜像是当前系统中拥有的镜像文件,是静态的。

查看镜像详情

语法:docker inspect 镜像名或镜像id案例:docker inspect hello-world

导出镜像文件

镜像导出(linux系统中的镜像文件下载到本地-例如window),导出后给他人使用

docker save  hello-world | gzip > hello-world.tar.gz  

在这里插入图片描述

删除镜像文件

语法:docker image rm 镜像名或镜像id案例:docker image rm hello-world

导入镜像操作

镜像导入(要在hello-world.tar.gz 文件所在目录下执行)

docker load < hello-world.tar.gz  

在这里插入图片描述

运行镜像文件

从一个镜像可以运行启动一个或多个容器(镜像文件)。

所谓容器,我们可以理解为是一个虚拟的计算机,其中运行着操作系统,操作系统中运行着我们部署的应用
在这里插入图片描述

基于镜像,启动容器运行。

docker run hello-world

在这里插入图片描述

后台运行镜像文件

后台运行启动 tomcat 容器:

docker run -d tomcat

在这里插入图片描述

Docker 容器操作实践实践

本次以CentOS镜像为例,讲解容器的基本操作。

下载镜像

通过docker pull指令下载CentOS镜像,例如:

网络拉取: docker pull centos:7本地加载: docker load < centos.tar.gz

本地加载确保系统中有镜像压缩包
在这里插入图片描述

下载完以后,查看centos7镜像文件。

docker images

在这里插入图片描述

创建并启动容器

docker run -it xxxx bash

其中:

  1. xxxx - 镜像名, 或 image id 的前几位,
  2. -it 这是两个参数(-i表示交互式操作, -t 表示终端)
  3. bash 表示进入操作终端,基于交互式进行相关操作(例如执行linux相关指令,相当于windows中的cmd)。

案例:通过docker启动运行 centos7镜像

docker run -it centos:7 bash

在这里插入图片描述
注意:不要在容器中运行Docker命令,因为Docker安装在宿主机中不在容器当中。

退出容器

假如从宿主机进入了启动的容器,退出容器需要使用exit指令,例如:

exit

查看Docker中的容器

查看docker运行中的容器

docker ps

查看docker运行中的所有容器

docker ps -a

其中,-a表示全部(all)

仅列出容器的 id

docker ps -aq

在这里插入图片描述

在这里插入图片描述

查看容器日志信息

查看后台运行的容器输出结果,这个指令非常重要,假如容器没有启动,要通过此指令去看一下错误日志。

语法:docker container logs 容器ID(前三位)案例:docker container logs dee

显示出对日志所有的操作记录
在这里插入图片描述

停止或重启容器

停止运行的容器,代码如下:

docker container stop dee

在这里插入图片描述

停止所有运行的容器:

docker stop $(docker ps -a -q) 

在这里插入图片描述

重新启动容器,代码如下:

docker container restart XXX(CONTAINER ID 前三位)

容器的改名与随系统自动启动

–name 和 --restart=always

–name:
每个启动的容器都可以指定一个名称,方便使用名称来操作容器。

–restart=always:
docker系统服务重启,或者操作系统重启,容器可以随系统自动启动。

# 启动一个临时容器
docker run -d \
--rm \
--name tmp \
tomcat# 把 tomcat 的 server.xml 复制到宿主机的 /root/ 目录下
docker cp tmp:/usr/local/tomcat/conf/server.xml  /root/# 停止临时容器,会自动删除
docker stop tmpdocker ps -a# 修改 server.xml 中的8080端口,改成80
vim server.xml# -v 把宿主机路径挂载到容器的一个路径
# 挂载的路径可以是文件,也可以是文件夹
# 这里把修改过的 server.xml 挂载到新启动的容器中
docker run -d \
--name cat2 \
-v /root/server.xml:/usr/local/tomcat/conf/server.xml \
tomcat# 查看启动日志,确认使用 80 端口启动
docker logs cat2

进入指定容器

当需要进入容器进行操作时(容器运行着),可以使用 docker exec 命令,例如:

docker exec -it dee bash #dee为容器id

当容器没有运行会报错
在这里插入图片描述
运行容器后进入指定容器
在这里插入图片描述

绝大多数情况下一个容器中只运行一个应用。

容器中也允许运行启动多个应用,可以进入已经启动的容器, 在里面运行启动其他应用:

在这里插入图片描述

容器启动后运行的命令

当容器启动后,需要容器中运行指定的命令来启动一个应用时。

例如

查看在镜像中指定的默认运行命令:docker history

docker history 容器名

在这里插入图片描述

tomcat 镜像中设置的 CMD 指令指定了容器启动后默认运行的命令: catalina.sh run。

再来看看其他镜像中设置的默认命令:

docker history redis---------------------------------------------------------------------------------
[root@localhost ~]# docker history redis
IMAGE          CREATED       CREATED BY                                      SIZE
bc8d70f9ef6c   3 weeks ago   /bin/sh -c #(nop)  CMD ["redis-server"]         0B
<missing>      3 weeks ago   /bin/sh -c #(nop)  EXPOSE 6379                  0B
<missing>      3 weeks ago   /bin/sh -c #(nop)  ENTRYPOINT ["docker-entry…   0Bdocker history mariadb---------------------------------------------------------------------------------
[root@localhost ~]# docker history mariadb
IMAGE          CREATED       CREATED BY                                      SIZE
eff629089685   13 days ago   /bin/sh -c #(nop)  CMD ["mysqld"]               0B
<missing>      13 days ago   /bin/sh -c #(nop)  EXPOSE 3306                  0B
<missing>      13 days ago   /bin/sh -c #(nop)  ENTRYPOINT ["docker-entry…   0Bdocker history centos:8----------------------------------------------------------------------------------
[root@localhost ~]# docker history centos:8
IMAGE          CREATED        CREATED BY                                      SIZE
300e315adb2f   6 months ago   /bin/sh -c #(nop)  CMD ["/bin/bash"]            0B

设置容器中运行的命令

ENTRYPOINT 和 CMD

这两向设置都是用来设置容器中运行的命令。

只设置 CMD 来执行 ls -a -l:

CMD ["ls", "-a", "-l"]

只设置 CMD 是常见的用法。

用 ENTRYPOINT 和 CMD 两个一起设置来执行 ls -a -l:

ENTRYPOINT ["ls"]
CMD ["-a", "-l"]

两项一起设置时,会把两项设置的内容连接起来作为一个完整的命令。

覆盖 CMD:

以 tomcat 镜像为例,镜像中设置的默认命令是 catalina.sh run,可以任意指定命令覆盖这个默认命令,这里执行 ls -a -l 来测试:

docker run tomcat ls -a -l

覆盖 ENTRYPOINT:

--entrypoint:设置运行的命令,不许写在镜像名称 tomcat 的前面。注意,这里不能添加命令的参数;

镜像名称 tomcat 后面的内容会覆盖 CMD

docker run --entrypoint ls tomcat -a -l

在这里插入图片描述

删除容器

假如容器不用了,可执行删除操作(原则来说先停止再删除),例如:

普通删除:docker container rm dee xx1 xx2... #dee为容器id,可以添加多个容器id,中间用空格隔开强制删除:docker container rm -f dee #dee为容器id

其中,如果删除运行中的容器,需要添加 -f 参数。

清理所有终止状态容器,例如:

docker container prune

删除所有容器:

docker  rm $(docker ps -a -q)  
或者
docker rm -f $(docker ps -aq)

在容器与宿主机之间复制

docker cp

在容器和宿主机之间复制文件

下面来看一个实际的例子,这个例子中我们从 tomcat 的一个临时容器复制配置文件 server.xml 到宿主机,然后在 server.xml 中修改端口号,把 8080 改成 80。

# 启动一个临时容器
docker run -d --rm --name tmp tomcat# 把 tomcat 的 server.xml 复制到宿主机的 /root/ 目录下
docker cp tmp:/usr/local/tomcat/conf/server.xml  /root/# 停止临时容器,会自动删除
docker stop tmpdocker ps -a# 修改 server.xml 中的8080端口,改成80
vim server.xml# -v 把宿主机路径挂载到容器的一个路径
# 挂载的路径可以是文件,也可以是文件夹
# 这里把修改过的 server.xml 挂载到新启动的容器中
docker run -d --name cat2 -v /root/server.xml:/usr/local/tomcat/conf/server.xml \
tomcat# 查看启动日志,确认使用 80 端口启动
docker logs cat2

在这里插入图片描述

Docker数据管理实践

在这里插入图片描述

概述

在容器中管理数据主要有两种方式:

  • 挂载主机目录 (Bind mounts)——最常用 (docker run –v 宿主机目录:容器目录)
  • 数据卷(Volumes)

数据卷

数据卷是一个可供一个或多个容器使用的特殊目录,可以在容器之间共享和重用,默认会一直存在,即使容器被删除

数据卷操作

第一步:创建数据卷,例如:

docker volume create container-vol

在这里插入图片描述

第二步:查看所有数据卷,例如:

docker volume ls

在这里插入图片描述
查看指定 数据卷 的信息

docker volume inspect container-vol

查询的结果:

[{"Driver": "local","Labels": {},"Mountpoint": "/var/lib/docker/volumes/container-vol/_data",(挂载点 资源地址)"Name": "container-vol","Options": {},"Scope": "local"}
]

第三步:启动挂载数据卷的容器,例如:

docker run -it --mount source=container-vol,target=/root centos:7 bash

或者采用如下简写方式

-v container-vol:/root (把数据卷 container-vol 挂载到容器的 /root 目录)

docker run -it -v container-vol:/root centos:7 bash

第四步:删除数据卷(如果数据卷被容器使用则无法删除),例如:

docker volume rm container-vol

清理无主数据卷

docker volume prune

挂载主机目录

我们还可以在启动容器时,以目录直接挂载的方式进行数据操作,例如:

docker run -it -v /usr/app:/opt/app centos:7 bash

其中:

1)/usr/app:为宿主机目录

2)/opt/app: 为启动容器的一个目录

3)-v 用于指定挂载目录,如果本地目录(宿主机目录)不存在, Docker 会自动为你按照挂载目录进行目录的创建。

在这里插入图片描述

挂载可以理解为桌面的快捷方式与资源的实际位置

docker run -it -v (主机目录,相当于实例位置)/usr/app: (容器目录,相当于桌面快捷方式)/opt/app centos:7 bash

又比如我把钱存银行了(宿主机),但我有一张银行卡(容器),我能通过银行卡查钱取钱。(容器查询获取宿主机的数据)

例如:
在这里插入图片描述
宿主机数据卷挂载到容器后,可以直接通过宿主机操作数据卷,也可以通过容器间接操作数据卷。

查看挂载目录信息

docker inspect 91a #91a 为容器id

显示结果:

"Mounts": [{"Type": "bind","Source": "/usr/app","Destination": "/opt/app","Mode": "","RW": true,"Propagation": "rprivate"}
],
...

文件的挂载

在这里插入图片描述

在这里插入图片描述

# 清理容器
docker rm -f $(docker ps -aq)# -v 宿主机路径:容器路径
# 挂载的可以是文件,也可以是文件夹
# -v 可以在宿主机自动新建目录
docker run -d \
--name cat1 \
-v /usr/app:/opt/app \
tomcat# 进入容器,在 /opt/app 下新建文件 f1.txt
docker exec -it cat1 bashtouch /opt/app/f1.txt# 退出容器的命令行
exit# 访问宿主机的文件夹
cd /usr/app
ls

数据卷挂载

# 新建数据卷
docker volume create my-vol# 查看 my-vol 数据卷的信息
docker volume ls# /var/lib/docker/volumes/my-vol/_data
docker inspect my-vol# 挂载 my-vol 数据卷到容器的 /opt/app 路径
docker run -d \
--name cat2 \
-v my-vol:/opt/app \
tomcat# 在容器的 /opt/app 下新建 f2.txt
docker exec -it cat2 bashtouch /opt/app/f2.txt# 退出容器的命令行
exit# 进入 my-vol 数据卷的真实目录,查看 f2.txt
cd /var/lib/docker/volumes/my-vol/_datals

Docker 网络

端口映射

客户端要访问宿主机内部运行的容器时,可以在宿主机打开一个端口,当客户单访问这个端口时,可以将访问转发到内部的容器。

-p 参数:通过 -p 参数设置,可以在宿主机上选择一个端口映射到容器的端口

在这里插入图片描述

# 清理容器
docker rm -f $(docker ps -aq)# 端口映射
# -p 宿主机端口:容器端口
docker run -d --name cat1 -p 80:8080 tomcat

在这里插入图片描述

在这里插入图片描述

浏览器访问宿主机映射的端口 80
http://192.168.64.150

看到 tomcat 返回的 404 页,说明已经正常访问到 tomcat 容器

虚拟网络

在这里插入图片描述
容器键互联可以使用 Docker 的虚拟网络来连接。

在 Docker 中可以创建任意多个虚拟网络,容器之间可以通过虚拟网络互联互通。创建虚拟网络时宿主机也会连接到虚拟网络。

# 新建虚拟网络 my-net
docker network create my-net# 查看虚拟网络
docker network ls# 查看网络描述信息
docker inspect my-net# 查看宿主机新建的虚拟网卡
ifconfig# 清理容器
docker rm -f $(docker ps -aq)# 新建两个容器 cat1 和 cat2
# 连接到虚拟网络 my-net
docker run -d --name cat1 \
--net my-net \
tomcatdocker run -d --name cat2 \
--net my-net \
tomcat# 查看两个容器的虚拟网络ip
docker inspect cat1
docker inspect cat2# 测试网络能否互联互通
# 从宿主机ping两个容器
ping 172.18.0.2
ping 172.18.0.3# 进入cat1,ping宿主机和cat2
docker exec -it cat1 ping 172.18.0.1
docker exec -it cat1 ping 172.18.0.3
# 从容器访问另一个容器,可以使用容器名称访问,容器内部实现了解析环境
docker exec -it cat1 ping cat2

Docker 构建镜像

文件下载

https://download.csdn.net/download/weixin_38305440/19683180

构建镜像

构建镜像类似于一台电脑的装机过程,添加文件、安装软件、配置环境…

例如构建一个 tomcat 10 镜像流程,就像在一台电脑上安装配置 tomcat 环境一样:

  1. 选择基础镜像 centos:8(相当于一台新电脑,只有操作系统)
  2. 添加 jdk 和 tomcat 文件
  3. 设置环境变量
  4. 设置开机启动 tomcat

下面来演示构建 tomcat 10 镜像的过程:

准备必要的文件

jdk 和 tomcat 10 的压缩文件放入一个文件夹中,这个文件夹不应该包含其他无关文件:

[/root/tomcat/]- jdk-8u291-linux-x64.tar.gz- apache-tomcat-10.0.6.tar.gz

Dockerfile

Dockerfile 类似于一个批处理文件,用来设置镜像的构建流程

在上一步的 tomcat 文件夹下创建 Dockerfile 文件:

[/root/tomcat/]- jdk-8u291-linux-x64.tar.gz- apache-tomcat-10.0.6.tar.gz- Dockerfile

在这里插入图片描述

编辑 Dockerfile 文件

cd /root/tomcatvim Dockerfile

在文件中添加以下内容:

# 选择基础镜像
FROM centos:8# jdk 和 tomcat 文件添加到镜像的 /usr/local/ 目录下
# ADD 指令会自动解压文件
ADD jdk-8u291-linux-x64.tar.gz apache-tomcat-10.0.6.tar.gz /usr/local/# 切换到镜像中指定的文件夹下
WORKDIR /usr/local/apache-tomcat-10.0.6/# 设置环境变量
ENV JAVA_HOME=/usr/local/jdk1.8.0_291 \CATALINA_HOME=/usr/local/apache-tomcat-10.0.6 \PATH=/usr/local/jdk1.8.0_291/bin:/usr/local/apache-tomcat-10.0.6/bin:$PATH# EXPOSE 8080 只是一个声明,在运行时并不会因为这个声明应用就会开启这个端口的服务
# 这个声明有两个好处:
#   1.帮助镜像使用者理解这个镜像服务的端口,以方便配置映射
#   2.在运行时使用随机端口映射时,也就是 docker run -P时,会自动随机映射 EXPOSE 的端口
EXPOSE 8080# 设置启动命令
CMD ["catalina.sh", "run"]

在这里插入图片描述

Dockerfile 指令参考手册:

https://docs.docker.com/engine/reference/builder/

执行构建

进入 tomcat 文件夹,并在当前文件夹下找到 Dockerfile 和其他需要的文件,来构建镜像:

cd /root/tomcat# 使用当前文件夹中的 Dockerfile 文件进行构建
# 新构建的镜像命名为 tomcat:10
docker build -t tomcat:10 ./

在这里插入图片描述

查看构建结果:

docker images
docker history tomcat:10
docker inspect tomcat:10

在这里插入图片描述

启动容器

docker run -d --name cat1 -p 8080:8080 tomcat:10
docker ps -a
docker logs cat1

浏览器访问测试:
http://192.168.64.150:8080

docker的镜像分层

docker里的镜像绝大部分都是在别的镜像的基础上去进行创建的,也就是使用镜像的分层结构。

实验

比如说使用dockerfile去创建一个最简单的hello镜像。创建好对应的dockerfile之后去进行创建:

FROM alpine:latest
MAINTAINER sbb
CMD echo "hello world"

执行了上面的命令我们可以看到存在着两个镜像,其中hello_world是我刚刚创建好的镜像。

$ docker imgaes
alpine
hello_world

docker分层

那么为什么会有两个镜像呢?这是由于docker的镜像分层结构所导致的,如下图所示。

在这里插入图片描述

一个docker镜像由多个可读的镜像层组成,然后运行的容器会在这个docker的镜像上面多加一层可写的容器层,任何的对文件的更改都只存在此容器层。因此任何对容器的操作均不会影响到镜像。

如何实现

至于容器如何获取镜像层文件而又不影响到是镜像层的呢?docker是这样实现的?

如果需要获取某个文件,那么容器曾会从上到下去下一层的镜像层去获取文件,如果该层文件不存在,那么就会去下一镜像层去寻找,直到最后一层

对于用户而言,用户面向的是一个叠加后的文件系统。

在这里插入图片描述
而任何对于文件的操作都会记录在容器层,例如说修改文件,容器层会把在镜像层找到的文件拷贝到容器层然后进行修改,删除文件则会在容器层内记录删除文件的记录。

好处

  • 基本上每个软件都是基于某个镜像去运行的,因此一旦某个底层环境出了问题,就不需要去修改全部基于该镜像的软件的镜像,只需要修改底层环境的镜像。
  • 这个好处也是最大好处,就是可以共享资源(所有层都可以进行重用),其他相同环境的软件镜像都共同去享用同一个环境镜像,而不需要每个软件镜像要去创建一个底层环境。

案列一

关闭防火墙

# 关闭防火墙
systemctl stop firewalld.service
# 禁止防火墙开机启动
systemctl disable firewalld.service

启动或重启docker

# 启动docker
systemctl start docker
# 重启docker
systemctl restart docker

在这里插入图片描述

在这里插入图片描述

案列二

启动多个 redis 容器

启动三个redis容器,将端口分别映射到7000,7001和7002端口

# 如果7000已经启动,不必重复启动
docker run -d --name redis7000 -p 7000:6379 redisdocker run -d --name redis7001 -p 7001:6379 redis
docker run -d --name redis7002 -p 7002:6379 redis# 查看容器
docker ps -a

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

jedis 连接测试

新建测试项目

在这里插入图片描述

pom.xml

添加 redis 和 junit 依赖

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>cn.tedu</groupId><artifactId>docker</artifactId><version>0.0.1-SNAPSHOT</version><dependencies><dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>2.9.0</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version></dependency></dependencies>
</project>

jedis 分片测试

编写测试方法

	@Testpublic void test2() {JedisPoolConfig cfg = new JedisPoolConfig();cfg.setMaxTotal(500);cfg.setMaxIdle(20);List<JedisShardInfo> shards = new ArrayList<JedisShardInfo>();shards.add(new JedisShardInfo("192.168.64.150", 7000));shards.add(new JedisShardInfo("192.168.64.150", 7001));shards.add(new JedisShardInfo("192.168.64.150", 7002));ShardedJedisPool pool = new ShardedJedisPool(cfg, shards);ShardedJedis j = pool.getResource();for (int i = 0; i < 100; i++) {j.set("key"+i, "value"+i);}pool.close();}

在容器中查看数据

分别进入三个redis容器,执行 keys * 查看结果

docker exec -it redis7000 redis-cli
docker exec -it redis7001 redis-cli
docker exec -it redis7002 redis-cli

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

TortoiseGit更换账号密码快捷操作

使用小乌龟&#xff0c;当碰到修改密码后&#xff0c;提交代码时&#xff0c;会提示没有权限。 一下为操作步骤&#xff1a; 找到小乌龟设置&#xff1a;清除掉 然后&#xff0c;进入到项目中&#xff0c;更新代码&#xff0c;此时会弹窗要求填写账号和密码&#xff0c;填写新…

Go基础:如何做单元测试和基准测试

目录 1. 单元测试 1.1. go test工具 go test的参数解读&#xff1a; 1.2. 测试函数 1.2.1. 测试函数的格式 1.2.2. 测试函数示例 1.3. 测试组 1.4. 子测试 t.Run 1.5. 测试覆盖率 go test -cover 1.6. 基准测试--Benchmark 1.6.1. 基准测试函数格式 1.6.2. 基准测试…

35岁了,依然倔强的相信未来!——我的2021年终总结

读大学的几年&#xff0c;一直保持着写生日寄语的习惯&#xff0c;复盘一年的得失&#xff0c;憧憬一下美好的未来。 2010年读研前买了个如下截图的笔记本&#xff0c;手写记录研究生的生活、求职经历、恋爱结婚、工作经历、生活琐事&#xff0c;每年都会产出10几篇甚至几十篇短…

移动网络无线网断开怎么连接服务器,多数人都弄错! 手机连WiFi后要不要断开移动网络?...

每个人都有自己的事要做&#xff0c;不论是开心的事&#xff0c;还是悲伤的事。每个人都有自己的人要遇&#xff0c;不管是携手的人&#xff0c;还是擦肩的客。所以&#xff0c;不要羡慕别人的生活&#xff0c;不要评判别人的对错&#xff0c;不要计较自己的付出与收获。宠辱不…

7z001怎么解压在安卓手机上面_手机存储告急怎么办?这份安卓清理指南请收好...

Hello艾瑞巴蒂 ,今天给大家带来了一篇安卓手机清理相关的一点小经验,希望大家喜欢,部分内容参考软件官方,如有不准确的地方还请各位值友多多包涵多加指正,笔芯~ 说到安卓手机空间清理,大家第一时间想到的应该是企鹅、大数字、某豹等出品的诸如XX手机管家、XX清理大师等清…

c++ using namespace 详解

<script></script> 所谓namespace&#xff0c;是指标识符的各种可见范围。C&#xff0b;&#xff0b;标准程序库中的所有标识符都被定义于一个名为std的namespace中。 一 &#xff1a; <iostream>和<iostream.h>是不一样&#xff0c;前者没有后缀&…

开学了,笔记本wifi空调打包回学校

听说理想中的爱情是这个样子&#xff1a;枯藤老树昏鸦&#xff0c;晚饭有鱼有虾&#xff0c;空调wifi西瓜&#xff0c;夕阳西下&#xff0c;你丑没事我瞎。而现实中&#xff0c;同学对学校的要求是&#xff0c;笔记本wifi空调&#xff0c;有没有&#xff1f;不过&#xff0c;最…

Python 从入门到实践 学习基础

本人本科是计算机科学与技术专业的一枚小程序员&#xff0c;在即将毕业的时候接触到了Python&#xff0c;在Python上也是小白一个&#xff0c;这也是我第一次在CSDN上写文章&#xff0c;希望和各位大佬交流分享自己的一些经验&#xff0c;如有不对的地方&#xff0c;还请指出&a…

计算机网络应用押韵句,沙雕押韵很可爱的rap的句子 笑掉大牙的押韵句子

1.爱情经不起等待&#xff0c;叫我宝贝就现在。 2.只要哥哥长得帅&#xff0c;备胎成群我也爱。 3.那些过不去的坎&#xff0c;还不都是因为你腿短。 4.跟着大哥混&#xff0c;三天饿九顿。 5.不笑运气差&#xff0c;一笑脸就大。 6.我爱你&#xff0c;你爱她&#xff0c;你说你…

Nginx+Tomcat搭建高性能负载均衡集群之枯藤老树

天净沙秋思 --枯藤老树昏鸦&#xff0c;小桥流水人家&#xff0c;古道西风瘦马。夕阳西下&#xff0c;断肠人 在天涯。 一、 工具 nginx-1.8.0 apache-tomcat-6.0.33 二、 目标 实现高性能负载均衡的Tomcat集群&#xff1a; 三、 步骤 1、首先下载Nginx&#xf…

用IT看世界杯——枯藤老树昏鸦,足球IT小龙虾

据相关媒体报道虽然国足无缘本届世界杯但中国却以另类的方式参与此次体育赛事。在与世界杯同期进行的机器人足球世界杯RoboCup上代表中国的浙江大学ZJUNlict队以4-0大胜卡耐基梅隆大学代表的美国队获得了RoboCup小型组的世界冠军。RoboCup是机器人领域最高水平的国际性赛事2013…

“正能量”抖音网红

一说到网红&#xff0c;人们很难把这个词和“正能量”联系到一起。网友们第一时间会想到的是“整容”、“蛇精脸”、“搔首弄姿”、“哗众取宠”等中性甚至是贬义词。 小编就是这群网友当中的其中一员&#xff0c;每次看到什么与“网红”沾上边&#xff0c;立马眉头一皱赶紧跳开…

大家都在刷的抖音短视频,原来是这些.......

作者 | 小F 来源 | 法纳斯特 之前有个朋友提到了抖音数据的获取。 问我这样的行业前景如何&#xff0c;说实话我哪知道啊... 不过也算是给我提供了一些分析思路&#xff0c;感谢。 所以本次就来分析一下抖音的那些大V们。 来探索一下什么样的视频在抖音里最受欢迎。 这里不得不…

抖音私信分享卡片如何制作,抖音私信卡片的优点。

最近很多人在问如何实现在抖音私信/客户群/粉丝群内将链接转换为图文卡片呢&#xff0c;如何生成自己的抖音私信卡片呢&#xff1f; 抖音私信卡片制作教程&#xff1a; 1、点击前往 【小狐工具箱】后台创建卡片&#xff0c;先选择不开启跳转&#xff1b; 2、进入 我的卡片详情…

抖音要做多久才有起色?厦门宝讯网捷

确实不可否认&#xff0c;抖音平台的流量是巨大的&#xff0c;所以&#xff0c;越来越多的朋友都准备在抖音平台上大展拳脚&#xff0c;实际操作的时候还是有一点力不从心&#xff0c;想要学习一下抖音要做多久才有起色&#xff1f;下面厦门宝讯网捷小编就来讲一下。 抖音账号的…

揭秘抖音最新玩法“抖音两元店”背后的套路。丨国仁网络资讯

既然选择了抖音直播这个行业,就要对直播这个行业有一份新的认知。你要把它当成你的一份职业,一份可以养活自己的工作。既然是工 作就要全身心的投入进去,学习和总结做直播的技巧和经验。还有 就是要有自己的定位,定位就是展示自己的一种方式。 选择属于自 己风格的直播方式…

凯育星辰:玩抖音,你不能碰的违禁词

抖音目前是公认的爆火短视频APP.之所以如此持续火遍大街小巷&#xff0c;跟每个文明的用户息息相关。那么你知道哪些语言是抖音上的违禁词吗&#xff1f;凯育星辰帮大家大致整理了以下这些&#xff1a; 涉及政治敏感问题的词&#xff0c;比如国家领导人、国徽、国旗、国歌、军旗…

被杭州某抖音代运营公司坑了

我是卢松松&#xff0c;点点上面的头像&#xff0c;欢迎关注我哦&#xff01; 聚募海哥说&#xff1a;昨天有个朋友跟我诉苦&#xff0c;被杭州某抖音代运营公司坑了&#xff0c;之前谈好的销售目标只完成了20%&#xff0c;痛骂代运营真TM不靠谱。关于代运营这个事情&#xff…

吃瓜吃出的抖音滑块

目录 前言 一、出师不利 二、轻声安抚/抽丝剥茧 三、验证 总结 前言 因为实习的原因&#xff0c;离开了室友的我老是吃不到一手瓜&#xff0c;这可是件大事&#xff0c;每天就靠着这点精神粮食过活了&#xff0c;然后就有了采集抖音热门榜单的想法&#xff0c;说干就干&…

抖音哪些行为存在骗赞骗关注,会有什么违规处罚丨国仁网络

对于一些视频内容较差或者说没有核心内容的视频&#xff0c;如果仅仅可以通过一些求赞求关注的手段&#xff0c;就让视频获得大量的互动&#xff0c;从而获得大量的流量。大家可以想一下&#xff0c;这样对于优质视频和原创视频创作者是公平的吗&#xff1f; 因此当出现非常直…