Oracle 11g Express in a docker container
docker run -d --name oracle -p 49160:22 -p 49161:1521 \
-e ORACLE_HOME=/u01/app/oracle/product/11.2.0/xe \
-e ORACLE_SID=xe \
-e TNS_ADMIN=$ORACLE_HOME /network/admin \
-e SQLPLUS=$ORACLE_HOME /bin/sqlplus \
wnameless/oracle-xe-11g
Fix the password expiration
docker exec -i oracle bash -c ' echo "ALTER PROFILE DEFAULT LIMIT PASSWORD_REUSE_TIME UNLIMITED;" | /u01/app/oracle/product/11.2.0/xe/bin/sqlplus system/oracle@localhost:1521'
docker exec -i oracle bash -c ' echo "ALTER PROFILE DEFAULT LIMIT FAILED_LOGIN_ATTEMPTS UNLIMITED;" | /u01/app/oracle/product/11.2.0/xe/bin/sqlplus system/oracle@localhost:1521'
docker exec -i oracle bash -c ' echo "ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;" | /u01/app/oracle/product/11.2.0/xe/bin/sqlplus system/oracle@localhost:1521'
docker exec -i oracle bash -c ' echo "ALTER PROFILE DEFAULT LIMIT PASSWORD_GRACE_TIME UNLIMITED;" | /u01/app/oracle/product/11.2.0/xe/bin/sqlplus system/oracle@localhost:1521'
docker exec -i oracle bash -c ' echo "ALTER USER system IDENTIFIED BY temp_password;" | /u01/app/oracle/product/11.2.0/xe/bin/sqlplus system/oracle@localhost:1521'
docker exec -i oracle bash -c ' echo "ALTER USER system IDENTIFIED BY oracle;" | /u01/app/oracle/product/11.2.0/xe/bin/sqlplus system/temp_password@localhost:1521'