Install docker in CentOS

Docker要求Centos系统的内核版本高于3.10,因此在安装前你需要知道你的系统是否支持Docker安装的最低内核要求。

uname -r

如果你安装过旧版本的Docker,那么你可以先删除它,再安装新的Docker版本。

# 查看电脑中已安装的Docker程序
yum list installed | grep docker

# 卸载Docker及相关程序
rpm -qa | grep docker | xargs rpm -e

# 手动卸载
yum remove docker  docker-common docker-selinux docker-engine

安装需要的软件包及设置docker安装源

yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

查看仓库中所有的docker版本

yum list docker-ce --showduplicates | sort -r

安装Docker

yum install docker-ce

# 安装特定的版本
yum install <FQPN>

# 验证安装
docker -v

设置开机启动

systemctl start docker
systemctl enable docker

安装Docker-Compose

你可以在 https://github.com/docker/compose/releases 找到你需要的Docker-compose版本。

Document:https://docs.docker.com/compose/install/

# 下载
curl -L https://github.com/docker/compose/releases/download/1.24.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

# 赋予执行权限
chmod +x /usr/local/bin/docker-compose

# 映射执行路径
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

开放2357

在java中开发微服务的应用程序,一般都会使用Docker来部署,但在开发的同时,我们需要将开发的程序打包,这时候就需要直接连接Docker服务,然而Docker是不允许外部直接连接的,这时候我们就需要开启2357端口来暴露Docker服务。

你可以修改Docker的守护,来达到该目的。

vim /lib/systemd/system/docker.service

# 修改ExecStart为如下
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock

# 重载
systemctl daemon-reload
systemctl restart docker

# 开启防火墙
firewall-cmd --zone=public --add-port=2357/tcp --permanent
Docker

Harbor 安装部署

官方发布地址:https://github.com/goharbor/harbor/releases
程序版本依赖:docker 17.03.0-ce+ and docker-compose 1.18.0+ .

Harbor支持在线安装及离线安装,此文章采用在线离线安装的形式,且安装版本为1.8.0

一、下载安装程序

# 下载
wget https://storage.googleapis.com/harbor-releases/release-1.8.0/harbor-offline-installer-v1.8.0.tgz

# 解压
tar xvf harbor-offline-installer-v1.8.0.tgz

二、配置

配置参数位于文件harbor.yml中

以下是我的配置,可根据自己的需求设定。

这里的https证书是我在腾讯云申请的免费SSL证书,你如果在腾讯云注册有域名也可以在这里 https://console.cloud.tencent.com/ssl 直接申请,当然你也可以使用免费证书的申请。

如下证书使用的是腾讯云申请的 DV SSL证书(Domain Validation SSL),申请后大概一小时会通过邮件得到信息,将申请到的证书下载下来,使用Nginx包内的Crt及Key文件即可。

hostname: hub.youvigo.com

# https related config
https:
  port: 443
  certificate: /data/cert/server.crt
  private_key: /data/cert/server.key

harbor_admin_password: youpassword

# The default data volume
data_volume: /data/harbor/data

三、安装

./install

Docker 批量删除镜像

删除所有容器

docker rm `docker ps -a -q`

删除所有镜像

docker rmi `docker images -q`

按条件删除镜像

# 没有标签
docker rmi `docker images | awk '/^<none>/ { print $3 }'`

# 按名称
docker rmi --force `docker images | grep goharbor | awk '{print $3}'`

删除不干净,强制清空

systemctl stop docker
rm -rf /var/lib/docker
systemctl start docker

psql connect docker postgresql

方式一、

docker exec -u 0 -it <CONTAINER ID> bash
su postgres
psql -U <DBUSER> -W -d <DBNAME>

# 查看PGSQL默认服务
pstree

方式二、

docker run -it --rm --network docker_odoonetwork postgres psql -h pgsql -U odoo -d analogcircuit

docker-compose.yml

version: '2'
services:
  web:
    image: odoo:12.0
    container_name: odoo
    depends_on:
      - db
    ports:
      - "8069:8069"
    networks:
      - "odoonetwork"
    volumes:
      - odoo-web-data:/var/lib/odoo
      - ./config:/etc/odoo
      - ./addons:/mnt/extra-addons
  db:
    image: postgres:10
    container_name: pgsql
    networks:
      - "odoonetwork"
    environment:
      - POSTGRES_DB=postgres
      - POSTGRES_PASSWORD=odoo
      - POSTGRES_USER=odoo
      - PGDATA=/var/lib/postgresql/data/pgdata
    volumes:
      - odoo-db-data:/var/lib/postgresql/data/pgdata
networks:
  odoonetwork:
    driver: bridge  
volumes:
  odoo-web-data:
  odoo-db-data:

Process finished with exit code -1073740940 (0xC0000374)

问题重现

最近将系统升级到了Windows LTSC 2019,且使用了较新的Python(3.7.3),在调试Odoo12的时候,Pycharm直接抛出错误"Process finished with exit code -1073740940 (0xC0000374)",经过各方查证,发现问题是由于locale这个包引起的。

Locale

解决方法

控制面板—>区域

区域
设置

到此,重启计算机,问题修复。

参考来源:https://youtrack.jetbrains.com/issue/PY-33045