分类 cmd 下的文章

使用加速器可以提升获取Docker官方镜像的速度

centos7环境下的安装和配置

# step 1: 安装必要的一些系统工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# Step 2: 添加软件源信息
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# Step 3: 更新并安装 Docker-CE
sudo yum makecache fast
sudo yum -y install docker-ce
# Step 4: 开启Docker服务
sudo service docker start

注意:其他注意事项在下面的注释中
# 官方软件源默认启用了最新的软件,您可以通过编辑软件源的方式获取各个版本的软件包。例如官方并没有将测试版本的软件源置为可用,你可以通过以下方式开启。同理可以开启各种测试版本等。
# vim /etc/yum.repos.d/docker-ce.repo
#   将 [docker-ce-test] 下方的 enabled=0 修改为 enabled=1
#
# 安装指定版本的Docker-CE:
# Step 1: 查找Docker-CE的版本:
# yum list docker-ce.x86_64 --showduplicates | sort -r
#   Loading mirror speeds from cached hostfile
#   Loaded plugins: branch, fastestmirror, langpacks
#   docker-ce.x86_64            17.03.1.ce-1.el7.centos            docker-ce-stable
#   docker-ce.x86_64            17.03.1.ce-1.el7.centos            @docker-ce-stable
#   docker-ce.x86_64            17.03.0.ce-1.el7.centos            docker-ce-stable
#   Available Packages
# Step2 : 安装指定版本的Docker-CE: (VERSION 例如上面的 17.03.0.ce.1-1.el7.centos)
# sudo yum -y install docker-ce-[VERSION]
# 注意:在某些版本之后,docker-ce安装出现了其他依赖包,如果安装失败的话请关注错误信息。例如 docker-ce 17.03 之后,需要先安装 docker-ce-selinux。
# yum list docker-ce-selinux- --showduplicates | sort -r
# sudo yum -y install docker-ce-selinux-[VERSION]

# 通过经典网络、VPC网络内网安装时,用以下命令替换Step 2中的命令
# 经典网络:
# sudo yum-config-manager --add-repo http://mirrors.aliyuncs.com/docker-ce/linux/centos/docker-ce.repo
# VPC网络:
# sudo yum-config-manager --add-repo http://mirrors.could.aliyuncs.com/docker-ce/linux/centos/docker-ce.repo


# 配置部分
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://dr8gnq1l.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

其他环境根据参考链接进行即可

参考链接: https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors?accounttraceid=7671094930d141cdbee604914069e21araif

危险命令, 切勿在生产环境使用, 执行前需要反复核对当前执行命令所在的连接的服务器的ip地址且关闭和非实验环境的shell连接

停止所有容器
docker stop $(docker ps -a -q) 
删除所有容器
docker rm $(docker ps -a -q)
删除所有镜像
docker rmi `docker images -a -q`
docker rmi -f `docker images -a -q` #可以保证镜像ID相同时还能正确删除


删除指定包含指定名称的容器名
docker stop $(docker ps -a | grep houdunren | awk '{print $1}')
docker rm $(docker ps -a | grep houdunren | awk '{print $1}')
# 强制删除包含指定名称的镜像
docker rmi -f $(docker images -a | grep houdunren | awk '{print $3}')
  • docker images -a 但是, 最后还是有无法删除的镜像
[root@localhost ~]# docker images -a
REPOSITORY          TAG                   IMAGE ID            CREATED             SIZE
hyperf/hyperf       7.2-alpine-v3.9-cli   1a067b031e1a        2 months ago        80.2MB
hyperf/hyperf       latest                1a067b031e1a        2 months ago        80.2MB
  • docker rmi $(docker images -q)
[root@localhost ~]# docker rmi `docker images -q`
Error response from daemon: conflict: unable to delete 1a067b031e1a (must be forced) - image is referenced in multiple repositories
Error response from daemon: conflict: unable to delete 1a067b031e1a (must be forced) - image is referenced in multiple repositories
  • 改为 docker rmi -f docker images -q 后成功删除
[root@localhost ~]# docker rmi -f `docker images -q`
Untagged: hyperf/hyperf:7.2-alpine-v3.9-cli
Untagged: hyperf/hyperf:latest
Untagged: hyperf/hyperf@sha256:133662bcd066f1826d44a971d876d3ca65910f0fbc881212526a5ef1c08c2502
Deleted: sha256:1a067b031e1a08101f89dca4bdc0a9ec47fae5df21ae8eb3842fe621123d52d6
Deleted: sha256:b78f069ad4b5383f0b0e71ea207dfd5d0c7878ca90d82df3ed0dd189992c1a1c
Deleted: sha256:be154a0e98e8945dbe8f4576f4688a6a857931f6dcb66522dbc5dc92ee664ead
Deleted: sha256:89ae5c4ee501a09c879f5b58474003539ab3bb978a553af2a4a6a7de248b5740
Error: No such image: 1a067b031e1a
  • 核查确认, 问题成功解决
[root@localhost ~]# docker images -a
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE

  • Dockerfile
# Default Dockerfile
#
# @link     https://www.hyperf.io
# @document https://doc.hyperf.io
# @contact  group@hyperf.io
# @license  https://github.com/hyperf-cloud/hyperf/blob/master/LICENSE

FROM hyperf/hyperf:latest

##
# ---------- env settings ----------
##
# --build-arg timezone=Asia/Shanghai
ARG timezone

ENV TIMEZONE=${timezone:-"Asia/Shanghai"}
#    COMPOSER_VERSION=1.9.1 \
#    APP_ENV=prod \
#    SCAN_CACHEABLE=(true)

# update
RUN set -ex \
#    && apk update \
    # install composer
    # && cd /tmp \
    # && wget https://github.com/composer/composer/releases/download/${COMPOSER_VERSION}/composer.phar \
    # && wget http://github.com/composer/composer/releases/download/${COMPOSER_VERSION}/composer.phar \
    # && chmod u+x composer.phar \
    # && mv composer.phar /usr/local/bin/composer \
    # show php version and extensions
    && php -v \
    && php -m \
    && php --ri swoole \
    && echo -e "\033[42;37m Build Completed :).\033[0m\n"


# Composer Cache
# COPY ./composer.* /opt/www/
# RUN composer install --no-dev --no-scripts

# RUN composer install --no-dev -o && php bin/hyperf.php
# COPY . /opt/www

WORKDIR /var/www/html
# RUN php /var/www/html/bin/hyperf.php
EXPOSE 9501
# ENTRYPOINT ["php", "/var/www/html/bin/hyperf.php", "start"]
# ENTRYPOINT ["sh"]
  • docker-compose.yml
version: "3"
services:
  hyperf:
    build:
      context: ./
      dockerfile: ./Dockerfile
    ports:
      - "9501:9501"
    command: ["php", "/var/www/html/bin/hyperf.php", "start"]
    volumes:
      - .:/var/www/html
    restart: always
  • 在代码目录中执行即可
docker-compose down && docker-compose up -d

数据表前置条件

  • project_users
uidtag_ids
100001002(NULL)
1(NULL)
100001006(NULL)
100001011["2", "4", "11"]
100001012["2", "4", "7", "11"]
100001013["4", "5", "11", "24", "17", "19"]
100001014["2", "4", "11"]
100001015["4", "9", "11", "10"]
100001016["4", "11", "17"]
100001017["2", "4", "5", "7", "11"]
  • user_tag_types
idnamememo
1合作商
2代理商
3老用户
4奇迹30学员
5灵性之美
6三千面相

  • 编写sql
SELECT xx.uid,tag_ids,GROUP_CONCAT(tag_title) AS 'user_tag_names' FROM 
(
SELECT uid,tag_ids,SUBSTRING_INDEX(SUBSTRING_INDEX(REPLACE(REPLACE(REPLACE(REPLACE(t1.tag_ids,' ',''),'[',''),']',''),'"',''),',',t2.help_topic_id + 1),',',-1) AS tag_id
FROM user_center.`project_users` t1 JOIN mysql.help_topic t2
WHERE t2.help_topic_id< (LENGTH(t1.tag_ids) - LENGTH(REPLACE(t1.tag_ids,',','')) + 1)
) xx
INNER JOIN (SELECT id,IF(memo='',`name`,memo) AS tag_title FROM user_center.`user_tag_types` ) ut ON ut.id=xx.tag_id
GROUP BY xx.uid
  • 执行结果
uidtag_idsuser_tag_names
10000["9", "10"]工作室成员,免费特权
100001000["4", "11"]奇迹30学员,精品课
100001004["4"]奇迹30学员
100001011["2", "4", "11"]代理商,奇迹30学员,精品课
100001012["2", "4", "7", "11"]奇迹30学员,灵商密码,精品课,代理商
100001013["4", "5", "11", "24", "17", "19"]代理41,奇迹30学员,灵性之美,精品课,现场课到新代理商,代理21

  • sql语句
SELECT * FROM (
SELECT 日期, 人数, (@csum := @csum + 人数) AS 累计人数
FROM (
SELECT DATE_FORMAT(complete_at,'%Y-%m-%d') AS '日期',COUNT(1) AS '人数' FROM `course_order_items` 
WHERE pid=1 AND state=1 AND course_id=235 GROUP BY 日期 ORDER BY 日期 ASC)daily_pnl_view,(SELECT @csum:=0) AS it
) xx
ORDER BY 日期 DESC
  • 返回结果
日期      人数  累计人数  
----------  ------  --------------
2020-06-26      16              42
2020-06-25      21              26
2020-06-24       5               5