Server part

docker-compose.yml

version: '3.4'
networks:
  web:
services:
  shadowsocks:
    image: shadowsocks/shadowsocks-libev
    restart: always
    ports:
      - "8388:8388"
    env_file: .env.shadowsocks

.env.shadowsocks

METHOD=aes-256-cfb
PASSWORD=myservershadowsockspassword
ARGS=-v

Then docker-compose up -d

Client part

First terminal, open socks tunnel

sudo apt install -y shadowsocks-libev
ss-local -s myserver.com -p 18388 -b 0.0.0.0 -l 10080 -k myservershadowsockspassword -v -m aes-256-cfb

Second terminal, or setup Firefox for SOCKS5 proxy

➜  ~ curl https://ipv4.icanhazip.com/          
10.251.134.654
➜  ~ curl --preproxy socks5://localhost:10080 https://ipv4.icanhazip.com/                           
123.456.0.122